package com.caoustc.okhttplib

import android.os.Environment

/**
 * 作者: 陈涛(chentao@kedacom.com/tchen0707@163.com)
 *
 *
 * 时间: 2014年5月20日 下午1:12:44
 *
 *
 * 版本: V_1.0.0
 *
 *
 * 描述: 常量定义
 */
object Constants {
    const val ERROR_RESPONSE_NULL = 1001
    const val ERROR_RESPONSE_DATA_PARSE_EXCEPTION = 1002
    const val ERROR_RESPONSE_UNKNOWN = 1003
    const val ERROR_RESPONSE_TIMEOUT = 1004

    /**
     * cancel request return code
     */
    const val ERROR_CANCEL_REQUEST = 1005
    const val REQ_TIMEOUT = 30 * 1000
    const val REQ_MIN_TIMEOUT = 60 * 1000
    const val REQ_LONG_TIMEOUT = 120 * 1000
    const val DELAY_TIME = 4 * 1000
    const val ENTERPARISE_CUSTOMER_APP_MODULE_ID = 999 //企业自定义应用模板id

    /**
     * 提前30s刷新token过期.
     */
    const val PREVIOUS_REFRESH_TOKEN_TIME = 30 * 1000
    const val USER_INFO = "user_info"
    const val IM_STATE = "im_state"
    const val LOCAL_IMAGE = "LOCAL_IMAGE"
    const val INTENT_FROM_MINE = "INTENT_FROM_MINE"
    const val INTENT_TAG_FROM = "INTENT_TAG_FROM"
    const val PAPER_HELPER_REGIST = "SHOPPAPER_MARKETING:"
    const val PAPER_HELPER_UNREGIST = "SHOPPAPER_MARKETING_PUSH_UNREGISTER:"

    // 客流排序 ORDER top降序
    @JvmField
    var FLEW_RANK_ORDER = -1

    // 客流排序 timeType 默认周
    // 日:1周:3月:4季:5年:6
    @JvmField
    var FLEW_RANK_TIME_TYPE = 3

    // 异常订单搜索
    var SEARCH_CONTENT = ""

    /**
     * CRM ticket
     */
    @JvmField
    var CRM_TICKET = "CRM_TICKET"

    /**
     * 接待薄是否修改状态
     */
    var IS_CHANGE_TYPE = false

    /**
     * CRM clue 线索状态 新增/修改 0=新增； 1=修改
     */
    var CRM_CLUE_SAVE_OR_UPDATE_TYPE = "SAVE_OR_UPDATE_TYPE"
    var INTENT_CONFIG_DATA = "INTENT_CONFIG_DATA"
    var INTENT_ORG_SELECT_DATA = "INTENT_ORG_SELECT_DATA"
    var INTENT_CLOUD_FORM_CRM_APPID = "INTENT_CLOUD_FORM_CRM_APPID"

    interface MEMBER_TYPE {
        companion object {
            /**
             * 新顾客
             */
            const val NEW_CUSTOMER = 0

            /**
             * 会员
             */
            const val MEMBER = 1

            /**
             * 店员
             */
            const val EMPLOYEE = 2

            /**
             * 熟客
             */
            const val REGULAR_CUSTOMER = 3

            /**
             * 其他人员
             */
            const val LIKE_MEPLOYEE = 4
        }
    }

    object Package {
        const val PACKAGE_COMMON = "common"
        const val PACKAGE_HUAWEI = "huawei"
        const val PACKAGE_OPPO = "oppo"
        const val PACKAGE_MI = "mi"
        const val PACKAGE_OVOPARK = "com.kedacom.ovopark"
        const val PACKAGE_LAIYIFEN = "com.kedacom.ovopark.laiyifen"
        const val PACKAGE_LAOBAIXING = "com.kedacom.ovoparklbx"
        const val PACKAGE_ZHIYUNYING = "com.kedacom.ovoparkzyy"

        //赫基
        const val PACKAGE_HEJI = "com.kedacom.ovopark.trendy"

        //文化馆版本比较特殊
        const val PACKAGE_CULTURAL = "com.kedacom.ovopark.cultural"
        const val PACKAGE_MANNINGS = "com.kedacom.ovopark.mannings"
        const val PACKAGE_TAIJI = "com.kedacom.ovopark.taiji"
        const val PACKAGE_CHENGHEJING = "com.kedacom.ovopark.chenghejing"
        const val PACKAGE_RISE = "com.kedacom.ovopark.rise"
        const val PACKAGE_RENCHUAN = "com.kedacom.ovopark.renchuan"
        const val PACKAGE_ZHUZHOU_CULTURAL = "com.kedacom.ovopark.zhuzhou"
        const val PACKAGE_MINISO = "com.kedacom.ovopark.miniso"
        const val PACKAGE_SMART_STORE = "com.kedacom.ovopark.smartstore"

        /**
         * 广州恒康版本
         */
        const val PACKAGE_HENGKANG = "com.kedacom.ovopark.hengkang"
        const val PACKAGE_CSMALL = "com.ovopark.csmall"
        const val PACKAGE_JIUKUAIDAO = "com.ovopark.jiukuaidao"
        const val PACKAGE_OHOL = "com.ohol.mdtv"
        const val PACKAGE_SHANGDA = "com.mingjiasmart.ovoparktv"
        const val PACKAGE_OPRETAIL = "com.kedacom.opretail"
        const val PACKAGE_WISDOMEYE = "com.ovopark.wisdomeye"
        const val PACKAGE_COM = "com.ovopark.common"

        //锐力体育
        const val PACKAGE_RUILI = "com.ruili.reyes"
        const val PACKAGE_STORE_MANAGE = "com.ovopark.storemanage"
    }

    object QA {
        const val BRAND = 0
        const val PROBLEM = 1
        const val IMAGE = 2
    }

    /**
     * nvr设备类型
     */
    object NVR {
        /**
         * 没有nvr，单独的摄像投资.
         */
        const val TYPE_UNKNOW = 0

        /**
         * V5的NVR
         */
        const val TYPE_V5 = 1

        /**
         * v7的NVR
         */
        const val TYPE_V7 = 2

        /**
         * 宇视的设备.
         */
        const val TYPE_YUSHI = 3
    }

    object Tags {
        const val TAG_BEGIN = 0X1000
        const val TAG_REFRESH_END = TAG_BEGIN + 1
        const val TAG_LOAD_END = TAG_BEGIN + 2
        const val TAG_REFRESH_FILE = TAG_BEGIN + 3
        const val TAG_REFRESH_INTERFACE = TAG_BEGIN + 4
        const val TAG_REFRESH_FAILED = TAG_BEGIN + 5
        const val TAG_GET_MESSAGE = TAG_BEGIN + 6
        const val TAG_NO_DATA = TAG_BEGIN + 7
        const val TAG_GET_DELAYED = TAG_BEGIN + 8
        const val TAG_FAILED = TAG_BEGIN + 9
        const val REQUEST_CODE_GALLERY = 23333
        const val REQUEST_CROP_CODE_GALLERY = 23332
        const val PERMISSIONS_CODE_LOCATION = 2001
        const val NORMAL_ADDRESS = 1001
        const val SHOP_LOCATION = 1002
        const val OVER_TIME_TYPE = 1008
        const val PERMISSIONS_CODE_CAMERA = 3001
        const val REQUEST_CAPTURE_CODE = 200
        const val REQUEST_RESULT_CODE = REQUEST_CAPTURE_CODE + 1
        const val REQUEST_SWITCH_RESULT_CODE = REQUEST_RESULT_CODE + 1
        const val GET_TIME = 0x10004
        const val SET_COUNT_DOWN = 0x10005
        const val INITIAL_PWD = 0
    }

    /*
     * 自定义参数
     */
    object MipLink {
        const val TOKEN = "token"
        const val FROM = "from"
    }

    object TicketType {
        const val POS = 1
        const val TICKET = 2
        const val MEMBER = 0
    }

    /**
     * Sharepreference自定义参数
     */
    object Prefs {
        /*小米推送ID和KEY*/ /* public static final String MIAPP_ID = "2882303761517492908";
        public static final String MIAPP_KEY = "5201749229908";*/
        //版本ApplicationId,flavor
        const val VERSION_APPLICATION_ID = "applicationId"
        const val FLAVOR = "flavor"
        const val LANGUAGE = "language"
        const val MAP_NAME = "map_name"

        // SharedPrefrencesName
        const val PREFRENCE_NAME = "OVOPARK_APP.prefs"

        //IM SharedPreferencesName
        const val PREFER_NAME_IM = "IM"

        //IM Param key
        const val PREFER_NAME_IM_KEY = "imToken"

        // Secret Key
        const val KEY = "OVOPARK9"

        // Cache Name
        const val CACHE_NAME = "OvoparkCache"

        // Cache User
        const val CACHE_USER = "OvoparkCacheUser"
        //mall Cache User
        const val CACHE_MALL_USER = "CacheMallUser"

        //权限列表缓存
        const val CACHE_PRIVILEGES = "OvoparkCachePrivileges"

        //CRM字典项
        const val CACHE_DICTS = "OvoparkCacheDicts"

        //水印配置
        const val CACHE_WATERMARK = "OvoparkCacheWaterMarks"

        // Input Key
        const val INPUT_CACHE_ID_KEY = "InputCacheIdKey"

        // Input Key
        const val INPUT_CACHE_CONTENT_KEY = "InputCacheContentKey"

        // Cookies Key
        const val COOKIES_KEY = "CookiesKey"

        // BaseUrl Key
        const val BASE_URL_KEY = "BaseUrlKey"

        // BaseUrl History Key
        const val BASE_URL_HISTORY_KEY = "BaseUrlHistoryKey"

        // Push Key
        const val PUSH_SWITCH = "PushKey"

        // Push Content Key
        const val PUSH_CONTENT_KEY = "PUSH_CONTENT_KEY"

        // Wifi Key
        const val WIFI_SWITCH = "WifiKey"

        // 消息免打扰
        const val MSG_DISTURB = "MsgDisturb"

        // DB Name
        const val DB_NAME = "OvoparkApp.db"

        // 新DB Name
        const val NDB_NAME = "Ovopark.db"

        // 新DB 版本
        const val DB_VERSION = 3503

        // First Install
        const val FIRST_INSTALL = "First_Install"
        const val INSTALL_VERSION_CODE = "Install_Version_Code"

        // Vibrator Switch
        const val VIBRATOR_SWITCH = "VibratorKey"

        // ijkPlayer switch。
        const val IJK_PLAYER_SWITCH = "IJK_PLay_Switch_Key"

        // Show Vibrator Switch
        const val SHOW_VIBRATOR_SWITCH = "ShowVibratorKey"

        // hardware decoding
        const val HARDWARE_DECODING = "hardware_decoding"

        // Push Info Uploaded
        const val PUSH_INFO_UPLOAD = "PUSH_INFO_UPLOAD"

        // Push Info UserId
        const val PUSH_INFO_USER_ID = "PUSH_INFO_USER_ID"

        // Push Info ChannelId
        const val PUSH_INFO_CHANNEL_ID = "PUSH_INFO_CHANNEL_ID"

        // Laiyifen enterpriseId
        const val ENTERPRISE_ID = "83" // laiyifen 83 , test 1

        // Account is logged in elsewhere
        const val PUSH_KICKED = "push_kicked"
        const val PUSH_TITLE = "push_title"
        const val HTTPS_TAG = "https_tag"
        const val PUSH_REGID = "push_regid"

        // Show Toast
        const val SHOW_TOAST = 0x00090
        const val DATA = "DATA"

        /**
         * 筛选条件
         */
        const val SELECT_DATA = "SELECT_DATA"

        // UserName
        const val USER_NAME = "USER_NAME"
        const val FROM_WHERE = "FROM"
        const val USER_PASSWORD = "USER_PASSWORD"
        const val ENTERPRISE_CONFIG = "ENTERPRISE_CONFIG"

        /*
        picture
         */
        const val TRANSIT_TYPE = "type"
        const val TRANSIT_PIC = "picture"
        const val TRANSIT_MSG = "tab_message"
        const val TRANSIT_ID = "id"
        const val TRANSIT_EXTRA_ID = "extra_id"
        const val TRANSIT_LIST = "list"
        const val TRANSIT_SHOP_LIST = "shop_list"
        const val TRANSIT_PIC_LIST = "picList"
        const val TRANSIT_BOOLEAN = "boolean"
        const val TRANSIT_DATA = "data"
        const val TRANSIT_PROGRESS = "progress"
        const val TRANSIT_JSONSTR = "jsonstr"
        const val TRANSIT_DATA_TYPE = "datatype"
        const val TRANSIT_CHECKTASK_ID = "checktask_id"
        const val TRANSIT_TEMPLATE_ID = "template_id"
        const val TRANSIT_TEMPLATE_NAME = "template_name"
        const val TRANSIT_TEMPLATE_TAG = "is_template"
        const val SHOW_VIDEO_PROGRESS = "progress_video"

        /**
         * intent 传输数据
         */
        const val EXTRA_INTENT_LIST = "extra_data_list"
        const val EXTRA_INTENT_POS = "extra_data_position"
        const val EXTRA_INTENT_H265 = "extra_data_h265"
        const val EXTRA_INTENT_SHOP_ID = "extra_shop_id" //当前门店id.
        const val MANAGER_ITEM_ORDER = "MANAGER_ITEM_ORDER"

        // WEBVIEW_VERSION
        const val WEBVIEW_VERSION = "WEBVIEW_VERSION"

        // SPLASH_VERSION
        const val SPLASH_VERSION = "SPLASH_VERSION"

        //SPLAH_PATH
        const val SPLAH_PATH = "SPLAH_PATH"

        // 表示是否是超级管理员
        const val SUPER_MANAGER_USER = "SUPER_MANAGER_USER"
        const val WARNING_SIGN_SHOW = "WARNING_SIGN_SHOW"

        //企业到期提示语
        const val ENTERPRISE_VALIDATE_MESSAGE = "ENTERPRISE_VALIDATE_MESSAGE"

        /**
         * 拍照上传人脸与拍照匹配人脸
         */
        const val USER_FACE_UP_FROM = "USER_FACE_UP_FROM"

        /**
         * 视频格式标示  1表示是录像，flv格式； 2表示是直播，
         */
        const val FLV = 1

        /**
         * 直播.
         */
        const val OTHER = 2

        /**
         * pos录入-1未选择，1按单价 2按总价
         */
        const val POS_UNSELECT = -1
        const val POS_UNIT = 1
        const val POS_TOTAL = 2
        const val PREF_POS_SAVE_MODE = "PREF_POS_SAVE_MODE" //pos录入模式
        const val POS_SAVE_MODE = "POS_SAVE_MODE"

        //轮播图的type
        const val BANNER_TYPE_HANDOVER = "1"
        const val BANNER_TYPE_COURSE = "2"
        const val BANNER_TYPE_WEB = "3"
        const val BANNER_TYPE_WEB_TOKEN = "4"
        const val BANNER_TYPE_SHOP_REPORT = "5"
        const val BANNER_TYPE_BILL = "9"
        const val CRUISE_SHOP = 1001
        const val CRUISE_SHOP_VIDEO = 1002
        const val CHOOSE_SHOP = 1003
        const val CHOOSE_SHOP_POS = 1004
        const val CHOOSE_SHOP_AREA = 500
        const val KEY_CONFIG = "KEY_CONFIG"
        const val KEY_COMMON = 0
        const val KEY_YCXD = 1
        const val KEY_POS = 2
        const val KEY_HOME_LIST = 3
        const val KEY_XCXD = 4
        const val SELECT_TYPE = "SELECT_TYPE"

        /**
         * 多选门店
         */
        const val MULTI_SELECT = 1

        /**
         * 单选门店
         */
        const val SINGLE_SELECT = 0

        /**
         * 有全选
         */
        const val ALL_SELECT = 2
        const val INTENT_TYPE = "INTENT_TYPE"
        const val INTENT_NORMAL = 0

        /**
         * 远程巡店
         */
        const val INTENT_YCXD = 1

        /**
         * 现场巡店.
         */
        const val INTENT_XCXD = 2

        /**
         * 首页列表
         */
        const val INTENT_HOME_LIET = 3

        /**
         * 图片中心
         */
        const val INTENT_PIC_CENTER = 4
        const val INTENT_PROBLEM = 5

        /**
         * pos录入
         */
        const val INTENT_POS = 6

        /**
         * 电子控工
         */
        const val INTENT_ELECTRONIC = 7

        /**
         * 一键开单
         */
        const val INTENT_CREATE_ORDER = 8

        /**
         * 工单管理
         */
        const val INTENT_WORK_ORDER_MANAGER = 9

        /**
         * 涂鸦设备列表
         */
        const val INTENT_INTELLIGENT_DEVICE = 11

        /**
         * 语音识别
         */
        const val INTENT_SPEECH_IDENTIFY = 10

        /**
         * 语音识别设置
         */
        const val INTENT_SPEECH_IDENTIFY_SETTING = 12

        /**
         * 店探
         */
        const val INTENT_DETECTIVE_TASK = 13

        /**
         * 医药陈列
         */
        const val INTENT_DISPLAY_CENTER = 14

        /**
         *涂鸦智控
         */
        const val INTENT_TYZK = 16


        /**
         * 销售PK榜 选取组织架构
         */
        const val INTENT_SALES_TOP = 15

        /**
         * 门店自检.
         */
        const val INTENT_MDZJ = 17

        const val INTENT_COMMON = 99
        const val INTENT_MULTIPLE = 100
        const val CLASS_NAME = "CLASS_NAME"
        const val FAVOR_LIST = "FAVOR_LIST"
        const val SELECT_ALL_SHOP = "SELECT_ALL_SHOP"
        const val SELECT_ALL_WHAT_EVER = "SELECT_ALL_WHAT_EVER"
        const val ADD_POS_DATA = 101 //添加pos录入数据
        const val INTENT_ATT_DETAIL = 102 //考勤打卡明细
        const val INTENT_ATT_STATISTICS = 103 //考勤打卡统计

        /**
         * 智慧车间key
         */
        const val ELECTRONIC_SERVICE_ID = "ELECTRONIC_SERVICE_ID"
        const val SMART_WORK_DEP_ID = "SMART_WORK_DEP_ID"
        const val STORE_NAME = "STORE_NAME"
        const val CAR_NUMBER = "CAR_NUMBER"
        const val SERVICE_MEMBER = "SERVICE_MEMBER"
        const val WORK_NAME = "WORK_NAME"
        const val ENTER_TIME = "ENTER_TIME"
        const val WORK_STATUS = "WORK_STATUS"
        const val SHOP_NAME = "SHOP_NAME"
        const val LOCATION_ID = "LOCATION_ID"
        const val SERVICE_LIST = "ENTER_TIME"
        const val LOCATION_NAME = "LOCATION_NAME"
        const val WORK_ORDER = "WORK_ORDER"
        const val VIDEO_ID = "VIDEO_ID"
        const val LEAVE_TIME = "LEAVE_TIME"
        const val FROM_ACTIVITY = "FROM_ACTIVITY"

        /**
         * 多选返回的key
         */
        const val SELECTED_STORES = "SELECTED_STORES"

        /**
         * 场景接口返回的数据
         */
        const val SCENE_REQUEST_RETURN_DATA = "SCENE_REQUEST_RETURN_DATA"

        /**
         * 收到通过的推送消息
         */
        const val RECEIVE_PUSH_PASSED_MSG = "RECEIVE_PUSH_PASSED_MSG"

        /**
         * 拒绝
         */
        const val RECEIVE_PUSH_REFUSED_MSG = "RECEIVE_PUSH_REFUSED_MSG"

        /**
         * 需要我审核
         */
        const val RECEIVE_PUSH_NEED_I_APPORVE_MSG = "RECEIVE_PUSH_NEED_I_APPORVE_MSG"

        /**
         * IPC开启视频会议相关设置信息
         */
        const val IPC_VIDEO_SETTING_DATA = "IPC_VIDEO_SETTING_DATA"

        /**
         * IPC开启视频会议id
         */
        const val IPC_MEETING_ID = "IPC_MEETING_ID"

        /**
         * 新架构地址缓存保存
         */
        const val SERVER_ADDR = "SERVER_ADDR"
        const val SERVER_ADDR_KEY = "SERVER_ADDR_KEY"
        const val SERVER_NEW_ADDR_KEY = "SERVER_NEW_ADDR_KEY"

        /**
         * 设备管理记录上次选择的门店
         */
        const val SELECTED_SHOP_NAME_AND_ID = "SELECTED_SHOP_NAME_AND_ID"

        /**
         * 是否询问过开启会员提醒
         */
        const val MEMBER_SHIP_REMIND_SAVE_JSON = "MEMBER_SHIP_REMIND_SAVE"

        /**
         * 是否询问过开启黑名单提醒
         */
        const val BLACK_LIST_REMIND_SAVE_JSON = "BLACK_LIST_REMIND_SAVE_JSON"

        /**
         * 会员报表 界面是否进入选取过店铺 设置成默认店铺
         */
        const val MEMBER_SHIP_FORM_DEPT_ID = "MEMBER_SHIP_FORM_DEPT_ID"

        /**
         * 店报缓存
         */
        const val SHOP_REPORT_CACHE = "SHOP_REPORT_CACHE"

        /**
         * 会员与报表界面存储的shop信息
         */
        const val SHOP_MEMBER_SHIP_BEAR_SHOP = "SHOP_MEMBER_SHIP_BEAR_SHOP"

        /**
         * 接待列表Fragmnet 存储的depid
         */
        const val MEMBER_SHIP_RECEPTION_DEP_ID = "MEMBER_SHIP_RECEPTION_DEP_ID"

        /**
         * 防损模块 增加缓存店铺
         */
        const val MEMBER_SHIP_STOP_LOSS_SHOP_LIST = "MEMBER_SHIP_STOP_LOSS_SHOP_LIST"

        /**
         * 剪裁 uri 图片类型
         */
        const val CLIP_IMAGE_TYPE = "CLIP_IMAGE_TYPE"

        /**
         * 剪裁 uri 图片uri
         */
        const val CLIP_IMAGE_URI = "CLIP_IMAGE_URI"

        /**
         * 当前网络访问区域（大陆还是其他）
         */
        const val INTENT_LOCATION = "INTENT_LOCATION"

        /**
         * 消息大类
         */
        const val MSG_CLASSIFY = "MSG_CLASSIFY"

        /**
         * 隐私协议
         */
        const val PRIVACY_AGREEMENT = "PRIVACY_AGREEMENT"

        /**
         * 门店资产Id
         */
        const val DEPT_ID = "DEPT_ID"
        /**
         * 推广广告
         */
        const val AD_EXTENSION = "AD_EXTENSION"
        /**
         * 费用中心权限
         */
        const val BOOLEN_PRIVILEGE_COST_CENTER = "BOOLEN_PRIVILEGE_COST_CENTER"

    }

    //－－－－－－－－－－－－－－－－－－－ 分割线 end －－－【Sharepreference自定义参数】－－－－－－－－－－－－－－－－－－
    object Result {
        //成功
        const val ok = "ok"

        //标签名重复
        const val DUPLICATE = "DUPLICATE"

        //参数错误
        const val INVALID_PARAMETER = "INVALID_PARAMETER " //
    }

    object LANGUAGE {
        const val ENGLISH = "English"
        const val SIMPLIFIED_CHINESE = "简体中文"
        const val TRADITIONAL_CHINESE = "繁體中文"
        const val TAIWAN = "繁體中文（台灣）"
        const val INDONESIA = "Republik Indonesia"
        const val DEFAULT = "DEFAULT"
    }

    object MAP {
        const val AMAP = 0
        const val BDMAP = 1
    }

    /*
     * 手机参数
     */
    object Mobile {
        // 系统名称
        const val OS = "ANDROID"

        // 手机号码
        var NUMBER = ""

        // 手机串号
        var UUID = ""

        // SDK版本
        @JvmField
        var SDK_INT = 0

        // 当前应用版本
        @JvmField
        var VERSION_CODE = 0

        // 当前版本名称
        @JvmField
        var VERSION_NAME: String? = null

        // 注册推送的
        @JvmField
        var PUSHREGISTID: String? = null
    }

    /*
     * 路径定义
     */
    object Path {
        // SD根路径
        val SD_PATH = Environment.getExternalStorageDirectory().absolutePath

        // Base Path
        @JvmField
        val BASE_PATH = SD_PATH + "/Ovopark/"

        // APK下载路径
        @JvmField
        val APK_DOWNLOAD_DIR = BASE_PATH + "Apk/"

        //        PDF下载路径
        val PDF_DOWNLOAD_DIR = BASE_PATH + "PDF/"

        // 抓拍图片存放路径
        val SNAPSHOT_DIR = BASE_PATH + "Snapshot/"

        // 日志文件存放路径
        val LOG_DIR = BASE_PATH + "Log/"

        // 数据缓存路径（默认)
        val DATA_CACHE_DIR_DE = BASE_PATH + "AppData/"

        // 数据缓存路径（万店掌)
        val DATA_CACHE_DIR = BASE_PATH + "Data/"

        // 数据缓存路径（老百姓)
        val DATA_CACHE_DIR_S = BASE_PATH + "AppDataS/"

        // 数据缓存路径（来伊份)
        val DATA_CACHE_DIR_L = BASE_PATH + "AppDataL/"

        // 数据缓存路径（智运营)
        val DATA_CACHE_DIR_Z = BASE_PATH + "AppDataZ/"

        // 数据缓存路径（赫基)
        val DATA_CACHE_DIR_H = BASE_PATH + "AppDataH/"

        // 数据缓存路径（文化馆)
        val DATA_CACHE_DIR_WHG = BASE_PATH + "AppDataWHG/"

        // 数据缓存路径（万宁)
        val DATA_CACHE_DIR_WN = BASE_PATH + "AppDataWN/"

        // 数据缓存路径（太极)
        val DATA_CACHE_DIR_TJ = BASE_PATH + "AppDataTJ/"
        val DATA_CACHE_DIR_RISE = BASE_PATH + "AppDataRise/"

        // 数据库文件路径
        val DB_CACHE_DIR = BASE_PATH + "DataBase/"

        // 临时文件
        @JvmField
        val TEMP_DIR = BASE_PATH + "Temp/"

        // 上传文件
        @JvmField
        val UPLOAD_DIR = BASE_PATH + "Upload/"

        // 图片下载目录
        val IMAGE_DOWNLOAD_DIR = BASE_PATH + "Images/"

        // 图片缓存路径
        @JvmField
        val IMAGE_CAHCE_DIR = BASE_PATH + "Cache/"

        // 视频缓存路径
        @JvmField
        val VIDEO_CAHCE_DIR = BASE_PATH + "Videos/"

        // 图片下载到手机相册
        @JvmField
        val IMAGE_DOWNLOAD_DCIM = SD_PATH + "/DCIM/Camera/"

        // 课程附件下载目录
        @JvmField
        val DOWNLOAD_FILE = BASE_PATH + "Attaches/"

        //工作圈原图路径
        @JvmField
        val ORIGIN_IMAGE = BASE_PATH + "/Origin/"

        //工作圈附件目录
        @JvmField
        val ATTACHMENT = BASE_PATH + "/Attachment/"

        //文件管理
        val FILEMANAGE = BASE_PATH + "/filemanage/"
        @JvmField
        val BASE_VIDEO_PATH = SD_PATH + "/OvoparkVideo/"
        val BASE_VIDEO_PIC_PATH = BASE_VIDEO_PATH + "/PIC/"

        /**
         * 图片中心和工作圈下载图片， 智慧车间图片保存位置
         */
        @JvmField
        val PICCENTER_WORKCIRCLE_IMG_DOWNLOAD_PATH = SD_PATH + "/OvoImage/"

        val CRUISE_TEMPLE_DD = BASE_PATH + "Cruise/"
    }

    object Params {
        const val PAGE_SIZE = "page.pageSize"
        const val PAGE_NUMBER = "page.pageNumber"
    }

    object Notification {
        const val WEB_SOCKET_REN_LIAN = 9000
    }

    object SDK_KEY {
        const val BUGLY_APP_ID = "12fd7f987f"
        const val LBX_BUGLY_APP_ID = "34bdc74f16"
    }

    object Keys {
        const val REQUEST_FOR_CONTACT = 0x11
        const val REQUEST_FOR_MODULE = 0x12
        const val REQUEST_FOR_DEPT = 0x13
        const val REQUEST_FOR_DETAIL = 0x14
        const val REQUEST_FOR_COMMENT = 0x15
        const val REQUEST_FOR_NEW = 0x16
        const val REQUEST_HANDLE_EVENT = 0x17
        const val REQUEST_FOR_DETAIL_IMAGE = 0x18
        const val REQUEST_FOR_EDIT = 0x19
        const val REQUEST_FOR_HANDLE = 0x20
        const val REQUEST_FOR_CAMERA = 0x21
        const val REQUEST_FOR_FILE = 0x22
        const val REQUEST_FOR_GROUP = 0x23
        const val REQUEST_FOR_PEOPLE_CAN_VIEW = 0x24
        const val REQUEST_FOR_SEARCH = 0x25
        const val REQUEST_FOR_ADDRESS = 0x26
        const val REQUEST_FOR_ZONE = 0x27
        const val REQUEST_FOR_REMIND_TIME = 0x28
        const val REQUEST_FOR_CHILD_TASK = 0x29
        const val REQUEST_FOR_TASK_EXECUTION_DETAIL = 0x30
        const val REQUEST_FOR_UPDATE_MSG_LSIT = 0x31
        const val START_DIALOG = 0x21
        const val MAX_CONTENT_INPUT_LENGTH = 5000
        const val CLOSE_DIALOG = 0x22
        const val TAG_DATA_CHANGED = 0x22
        const val MAX_INPUT_LENGTH = 500
        const val MAX_COMMENT_LENGTH = 300
        const val SOFT_KEYBROAD_POP_DELAY = 300
        const val CONTACT = 1
        const val DEPARTMENT = 0
        const val MODULE = 2
        const val ALL = 0
        const val FLAG = 1
        const val TYPE_MODULE = 0
        const val TYPE_MISSION = 1
        const val TYPE_FEEDBACK = 2
        const val IMAGES_PER_ROW = 3
        const val CHECKER = 1
        const val HAVE_NOT_HANDLER = 0
        const val MAX_IMG_SIZE = 12
        const val GROUP = 1
        const val MAX_PIC_NUM = 12
        const val WORK_CIRCLE_ATTACHMENT = 1
        const val MAX_PIC_SIZE = 5.0f
        const val MAX_CONTENT_LENGTH = 140
        const val HAS_VIDEO = "HAS_VIDEO"
        const val SEARCH_KEYWORD = "SEARCH_KEYWORD"
        const val SEARCH_TYPE = "SEARCH_TYPE"
        const val IS_SECRETARY = "IS_SECRETARY"
        const val WHOLE_DAY = " 23:59:59"
        const val CACHE_GROUP = "CACHE_GROUP"
        const val ADD_IMAGE = "ADD_IMAGE"
        const val SELECTED_GROUPS = "SELECTED_GROUPS"
        const val REQUEST_VIEW_INDEX = "REQUEST_VIEW_INDEX"
        const val REQUEST_VIEW_CHECKER = "REQUEST_VIEW_CHECKER"
        const val IMAGE_URL = "IMAGE_URL"
        const val IS_CREATE = "IS_CREATE"
        const val HAS_LONG_CLICK_EVENT = "HAS_LONG_CLICK_EVENT"
        const val ORIGIN_IMAGES = "ORIGIN_IMAGES"
        const val USER_TOKEN = "USER_TOKEN"
        const val HANDBOOK_MODEL = "HANDBOOK_MODEL"
        const val REPLY_USER_NAME = "REPLY_USER_NAME"
        const val REPLY_USER_ID = "REPLY_USER_ID"
        const val HANDOVER_CONTENT = "HANDOVER_CONTENT"
        const val HANDOVER_BOOK_ID = "HANDOVER_BOOK_ID"
        const val HANDOVER_EXECUTORUSER_ID = "HANDOVER_EXECUTORUSER_ID"
        const val HANDOVER_GOLDAWARDUSER_ID = "HANDOVER_GOLDAWARDUSER_ID"
        const val NEED_CONFIRM_READ_HANDOVER_BOOK = "NEED_CONFIRM_READ_HANDOVER_BOOK"
        const val RESULT_HANDOVER_LIST = "RESULT_HANDOVER_LIST"
        const val MODULE_SELECT = "MODULE_SELECT"
        const val IMAGE_DETAIL_VIEWS = "IMAGE_DETAIL_VIEWS"
        const val CURRENT_INDEX = "CURRENT_INDEX"
        const val OPER_ROLE = "OPER_ROLE"
        const val CHECKER_ID = "CHECKER_ID"
        const val CURRENT_STATE = "CURRENT_STATE"
        const val SPOT_LIGHT_ID = "SPOT_LIGHT_ID"
        const val READ_MODE = "READ_MODE"
        const val ATTACHMENT_URL = "ATTACHMENT_URL"
        const val FILE_NAME = "FILE_NAME"
        const val IS_PASS = "IS_PASS"
        const val USER_ID = "USER_ID"
        const val IS_C2C = "isC2C"
        const val ABLE_ENTER_PERSONAL = "ABLE_ENTER_PERSONAL"
        const val ALLOWED_USERS = "ALLOWED_USERS"
        const val FIXED_ALLOWED_USERS = "FIXED_ALLOWED_USERS"
        const val ALLOWED_ALL = "ALLOWED_ALL"
        const val INTENT_MENDIAN_ID = "INTENT_SHOP_ID"
        const val ALL_OR_NULL = "ALL_OR_NULL"
        private const val DELAY_INCREASE_TIME = 1500
        private const val CRUISE_SHOP = 1001
        private const val CRUISE_SHOP_VIDEO = 1002
        const val INTENT_PARCEL_TAG = "INTENT_PARCEL_TAG"
        const val INTENT_SOURCE_TYPE = "INTENT_SOURCE_TYPE"
        const val INTENT_FROM_TYPE = "INTENT_FROM_TYPE"
        const val WORK_CIRCLE_SHARE_URL = "WORK_CIRCLE_SHARE_URL"
        const val WORK_CIRCLE_SHARE_PHOTO = "WORK_CIRCLE_SHARE_PHOTO"
        const val WORK_CIRCLE_SHARE_URL_URL = "WORK_CIRCLE_SHARE_URL_URL"
        const val WORK_CIRCLE_SHARE_URL_TITLE = "WORK_CIRCLE_SHARE_URL_TITLE"
        const val NEEDLESS_SHARE_LIST = "NEEDLESS_SHARE_LIST"
        const val INTENT_MEMBER_SHIP_ADD_RECORD_DATA = "INTENT_MEMBER_SHIP_ADD_RECORD_DATA"
        const val CONTACT_SELECT_USER_KEY = "CONTACT_SELECT_USER_KEY"
        const val CONTACT_SELECT_USER_KEY_ORG = "CONTACT_SELECT_USER_KEY_ORG"
        const val CONTACT_UNKICK_USER_KEY = "CONTACT_UNKICK_USER_KEY"
        const val WEB_QRCODE = "qrCodeId"
        const val WEB_APP = "webApp"
        const val CUSTOMER_LOCATION_LEFT = "CUSTOMER_LOCATION_LEFT"
        const val CUSTOMER_LOCATION_TOP = "CUSTOMER_LOCATION_TOP"
        const val COUNTRY_INFO = "COUNTRY_INFO"
        const val CUSTOMER_HIDE = "CUSTOMER_LOCATION_HIDE"
        const val CONTACT_SELECT_SERVICE_KEY = "CONTACT_SELECT_SERVICE_KEY"
        const val SPEECH_DEVICES_KEY = "SPEECH_DEVICES_KEY"
        const val STORE_HOME = "STORE_HOME" //门店首页
        const val MANAGE_BANNER = "MANAGE_BANNER" //管理banner
        const val TICKET_MEMBER_ID = "TICKET_MEMBER_ID"
        const val TICKET_MEMBER_REMARK = "TICKET_MEMBER_REMARK"
        const val DISPLAY_TASK_ID = "DISPLAY_TASK_ID"
        const val STANDARD_URL = "STANDARD_URL"
        const val DISPLAY_TASK_TITLE = "DISPLAY_TASK_TITLE"
        const val DISPLAY_TASK_STATUS = "DISPLAY_TASK_STATUS"
        const val STANDARD_RATE = "STANDARD_RATE"
        const val CRUISE_TEMPLATE = "CRUISE_TEMPLATE"
    }

    object ImageDetailViewTags {
        const val IMAGE_NORMAL = 10001
        const val IMAGE_WITH_SENDTO = 10002
        const val IMAGE_FROM_PICCENTER = 10003
    }

    object VideoTags {
        const val INTENT_TAG_POSITION = "INTENT_TAG_POSITION"
    }

    object SharedPreference {
        const val WORKCIRCLE_SHARED_PREFERENCE = "workcircle_shared_preference"
    }

    object PicCenterFilterSelection {
        /**
         * 组织架构
         */
        const val ORGANIZATION = "ORGANIZATION"

        /**
         * 场景
         */
        const val SCENE = "SCENE"
    }

    /**
     * 考勤申请类型,与server保持统一
     */
    object ApplicationContentType {
        /**
         * 默认全部
         */
        const val DEFAULT_ALL = -1

        /**
         * 请假
         */
        const val LEAVE = 66

        /**
         * 加班
         */
        const val OVERTIME = 68

        /**
         * 出差
         */
        const val BUSINESS_TRAVEL = 70

        /**
         * 调休
         */
        const val PAID_LEAVE = 69

        /**
         * 补签
         */
        const val RETROACTIVE = 67

        /**
         * 外勤
         */
        const val WORK_OUTSIDE = 71

        /**
         * 有重复的请假||调休的时间的返回字段
         */
        const val TIME_CONFLICT = "TIME_CONFLICT"

        /**
         * 签到考勤备注字段
         */
        const val REMARK_CONTENT = "REMARK_CONTENT"
    }




    /**
     * 需要审核的申请，排序
     */
    object OrderType {
        /**
         * 开始时间
         */
        const val BY_WORK_START_TIME = 1

        /**
         * 创建时间
         */
        const val BY_CREATE_TIME = 2
    }

    /**
     * 流程申请配置 类型
     * 1有可以正常签到,2未配置流程,3企业不使用该流程
     */
    object ApplyStatus {
        /**
         * 正常
         */
        const val NORMAL = 1

        /**
         * 未配置
         */
        const val NO_CONFIG = 2

        /**
         * 企业不使用该流程
         */
        const val FORBID = 3
    }

    /**
     * 申请详情中的审批者状态
     */
    object ApplyState4Apporver {
        /**
         * 提交申请
         */
        const val APPLY_STATE_COMMIT = 0

        /**
         * 同意
         */
        const val APPLY_STATE_AGREE = 1

        /**
         * 待审批
         */
        const val APPLY_STATE_EXAMINE = 2

        /**
         * 拒绝通过
         */
        const val APPLY_STATE_REFUSE = 3
    }

    object HandoverView {
        const val PUBLIC = 1 //所有可见
        const val PRIVATE = 2 //私密
        const val PART = 0 //部分可见
    }

    /**
     * 考勤申请【请假类型】,与server保持统一
     */
    object LeaveType {
        /**
         * 事假
         */
        const val TYPE_PRIVATE_AFFAIR_LEAVE = 1

        /**
         * 病假
         */
        const val SICK_LEAVE = 2

        /**
         * 婚假
         */
        const val MARITAL_LEAVE = 3

        /**
         * 产假
         */
        const val MATERNITY_LEAVE = 4

        /**
         * 陪产假
         */
        const val PATERNITY_LEAVE = 5

        /**
         * 丧假
         */
        const val DEAD_LEAVE = 6

        /**
         * 探亲假
         */
        const val TRAVEL_ON_HOME_LEAVE = 7

        /**
         * 工伤假
         */
        const val INJURY_LEAVE = 8

        /**
         * 年假
         */
        const val ANNUAL_LEAVE = 9
    }

    object EVENT_TAG {
        const val TAG_WORKCIRCLE = "TAG_WORKCIRCLE"
        const val TAG_UPLOAD_FILE = "TAG_UPLOAD_FILE"
    }

    /**
     * 考勤签到状态
     */
    object SignType {
        /**
         * 正常
         */
        const val TYPE_NORMAL = 1

        /**
         * 迟到
         */
        const val TYPE_LATE = 2

        /**
         * 早退
         */
        const val TYPE_LEAVE_EARLY = 3

        /**
         * 旷工
         */
        const val TYPE_NO_WORK = 4

        /**
         * 外勤 （这个本地自己随意写的 ，server没给）
         */
        const val TYPE_WORK_OUTSIDE = 5

        /**
         * 外勤申请 （这个本地自己随意写的 ，server没给）
         */
        const val TYPE_WORK_OUTSIDE_NEED_APPLY = 6

        /**
         * 出差 （这个本地自己随意写的 ，server没给）
         */
        const val TYPE_BUSINESS_TRAVEL = 7

        /**
         * 出差S申请 （这个本地自己随意写的 ，server没给）
         */
        const val TYPE_BUSINESS_TRAVEL_NEED_APPLY = 8

        /**
         * 未打卡 （这个本地自己随意写的 ，server没给）
         */
        const val TYPE_NO_SIGN = 9
        const val SING_FACE = 1
    }

    /**
     * 打卡状态
     *
     *
     * 1签到 2签退
     */
    object SignStatus {
        const val SIGN_IN = 1
        const val SIGN_OUT = 2
    }

    /**
     * 考勤规则
     */
    object SignRule {
        //统计模块都要
        const val ALL = 0

        //统计模块都不要
        const val NONE = 1

        //统计模块只要统计
        const val STATISTICS = 2

        //统计模块只要明细
        const val DETAIL = 3

        //需要考勤申请
        const val APPLY_NEED = 0

        //不需要考勤申请
        const val APPLY_NONE = 1

        //备注非文本，使用快捷标签
        const val DESCRIBET_LABEL = 0

        //备注使用文本，自己输入内容
        const val DESCRIBET_TEXT = 1
    }

    /**
     * 请假时间单位
     */
    object VacationUnit {
        const val UNIT_HOUR = 0
        const val UNIT_DAY = 1
    }

    /**
     * 申请的状态,与server保持统一
     */
    object UserApplyState {
        /**
         * 审核中 （记录审核次数，大于1都是在审核中）
         */
        const val EXAMINE = 0

        /**
         * 通过
         */
        const val PASS = -1

        /**
         * 拒绝
         */
        const val REFUSE = -2

        /**
         * 需要我审核的 (777是我随便造的，不知道server的状态)
         */
        const val NEED_I_EXAMINE = -777

        /**
         * 我审核过的申请
         */
        const val I_AUDITED = -3

        /**
         * 申请的用户类型
         */
        const val USER_TYPE = "USER_TYPE"

        /**
         * 申请的资源ID
         */
        const val SOURCE_ID = "SOURCE_ID"

        /**
         * 通知栏审核
         */
        const val KEY_APPLICATION_STATE = "APPLICATION_STATE"

        /**
         * 申请的状态
         */
        const val KEY_APPLY_STATE = "KEY_IS_JUST_SHOW"
        const val KEY_APPLY_TYPE = "KEY_APPLY_TYPE"
    }

    /**
     * webview中的相关参数
     */
    object UploadParams {
        const val INTENT_ID_TAG = "INTENT_ID_TAG"
        const val INTENT_NAME_TAG = "INTENT_NAME_TAG"
        const val INTENT_TITLE_TAG = "INTENT_TITLE_TAG"
        const val INTENT_URL_TAG = "INTENT_URL_TAG"
        const val WEBVIEW_TYPE = "WEBVIEW_TYPE"
    }

    /**
     *
     */
    object ProfileSettingMoreAction {
        const val ADD_PEOPLE = 0
        const val KICK_PEOPLE = 1
    }

    /**
     * 请求结果
     */
    object RequestState {
        /**
         * 请求前
         */
        const val BEFORE_REQUEST = 0

        /**
         * 结果成功
         */
        const val RESULT_SUCCESS = 1

        /**
         * 结果失败
         */
        const val RESULT_FAILED = 2
    }

    //--------------------------------------- 即时通讯请求相关 ----------------------------------------
    object IMCustomData {
        const val TAG_DATA = "data"

        /**
         * 群名是否设置 0:已设置，1:未设置
         */
        interface GroupNameState {
            companion object {
                const val GROUP_NAME_HAS_SET = 0
                const val GROUP_NAME_NO_SET = 1
            }
        }
    }

    /**
     * 即时通讯
     */
    class ImRequest {
        /**
         * 群组类型
         * 0：单聊； 1：群聊；2：话题；3：工单
         */
        interface DialogType {
            companion object {
                const val C2C = 0
                const val GROUP = 1
                const val TOPIC = 2
                const val ORDER = 3
            }
        }

        /**
         * 自定义消息的元素的key
         */
        interface CustomMsgElementKey {
            companion object {
                const val CMD_KEY = "userAction"
                const val CMD_PARAM = "actionParam"
            }
        }

        /**
         * 自定义消息的元素userAction值
         */
        interface CustomMsgUserAction {
            companion object {
                /**
                 * im聊天正在输入
                 */
                const val IM_CUSTOM_TYPE_TYPING = 14

                /**
                 * 邀请ipc
                 */
                const val IM_CUSTOM_TYPE_INVITE_IPC = 0x101

                /**
                 * 退出ipc
                 */
                const val IM_CUSTOM_TYPE_EXIT_IPC = 0x102

                /**
                 * @人
                 */
                const val IM_CUSTOM_TYPE_AT_PEOPLE = 0x103

                /**
                 * 分享店报
                 */
                const val IM_CUSTOM_TYPE_SHARE_SHOP_REPORT = 0x104
            }
        }
    }

    //    public interface GroupSeletType{
    //        /**
    //         * ipc 选择
    //         */
    //        String TYPE_IPC_MEMBERS = "TYPE_IPC_MEMBERS";
    //        /**
    //         * 指定群猪
    //         */
    //        String TYPE_CHANGE_GROUP_MANAGER = "TYPE_CHANGE_GROUP_MANAGER";
    //    }
    object IntentFrom {
        const val FROM_TYPE_REMOTE_VIDEO = "VIDEO_ACTIVITY" //来源类：远程巡店.
        const val FROM_TYPE_ELECTRONIC_VIDEO = "FROM_TYPE_ELECTRONIC_VIDEO" //来源类，电子控工详情
    }

    object Video {
        //public static final String VIDEO_OTHER = "VIDEO_OTHER";
        const val VIDEO_TYPE = "VIDEO_TYPE"
        const val VIDEO_IMAGE = "VIDEO_IMAGE"
        const val VIDEO_NORMAL = "VIDEO_NORMAL" //直播
        const val VIDEO_AUDIO = "VIDEO_AUDIO"
        const val VIDEO_FLV = "VIDEO_FLV" //录播.
        const val VIDEO_FLV_START_TIME = "VIDEO_FLV_START_TIME"
        const val INTENT_MENDIAN_NAME = "INTENT_SHOP_NAME"
        const val INTENT_MENDIAN_ID = "INTENT_SHOP_ID"
        const val INTENT_DEVICE_ID = "INTENT_DEVICE_ID"
        const val INTENT_ALARM_ID = "INTENT_ALARM_ID"
        const val INTENT_PRESET_NO = "INTENT_PRESET_NO"
        const val INTENT_TAG_POS = "INTENT_TAG_POS"
        const val INTENT_BOOLEAN = "INTENT_BOOLEAN"
        const val INTENT_TAG_TIME_ZONE = "SHOP_TIME_ZONE"
        const val INTENT_TAG_FROM = "INTENT_TAG_FROM"
        const val INTENT_TAG_FROM_CURRENT_SHOP = "INTENT_TAG_FROM_CURRENT_SHOP" //是否来自当前门店.
        const val INTENT_FROM_MINE = "INTENT_FROM_MINE"
        const val INTENT_FROM_PARK = "INTENT_FROM_PARK"
        const val INTENT_FROM_PROBLEM = "INTENT_FROM_PROBLEM"
        const val INTENT_START_TIME = "INTENT_START_TIME"
        const val INTENT_END_TIME = "INTENT_END_TIME"
        const val INTENT_CATCH_TIME = "INTENT_CATCH_TIME" //抓拍时的视频显示时间.
        const val INTENT_FROM_STATION = "INTENT_FROM_STATION" //来自工位详情
        const val VIDEO_FROM_NORMAL = 10001
        const val VIDEO_FROM_CRUISE = 10002
        const val VIDEO_FROM_SCENE_SETTING = 10003
        const val VIDEO_FROM_TICKET = 10004
        const val VIDEO_FROM_IPC = 10005
        const val VIDEO_IDLE = -1
        const val VIDEO_PREPARING = 0
        const val VIDEO_LOADING = 1
        const val VIDEO_START_PLAY = 2
        const val VIDEO_PAUSE = 3
        const val VIDEO_OFFLINE = 4
        const val VIDEO_STOP = 5
        const val VIDEO_FAILED = 6
        const val VIDEO_THIRD_TYPE_OVOPARK = "0"
        const val VIDEO_THIRD_TYPE_EZPLAYER = "5" //萤石
        const val VIDEO_THIRD_TYPE_ULU = "3" //悠洛克
        const val VIDEO_THIRD_TYPE_FR3 = "11" //FR3设备
        const val VIDEO_THIRD_TYPE_FR3_P1 = "41" //FR3设备
        const val VIDEO_THIRD_TYPE_GB28181 = "51" //GB28181设备，新国标入网设备.
        const val VIDEO_THIRD_TYPE_PC4 = "7" //PC4设备
        const val VIDEO_THIRD_TYPE_YUSHI_IPC = "21" // 宇视IPC
        const val VIDEO_THIRD_TYPE_OSS = "2333"
        const val VIDEO_OVOPARK_PLAYER = 0
        const val VIDEO_THIRD_PLAYER = 1
        const val VIDEO_EZPLAYER = 2
        const val VIDEO_ULU_PLAYER = 3
    }

    object NotificationIds {
        const val DOWNLOAD_ATTACH_ID = 1
        const val DOWNLOAD_ORIGINIMG_ID = 2
        const val GETPEOPLE_ID = 3
        const val GETSHOP_ID = 4
        const val SIGN_SNAPSHOT_ID = 5
        const val UPLOAD_ATTACH_ID = 6
        const val UPLOAD_ORIGINIMG_ID = 7
        const val WEBSOCKET_ID = 8
        const val UPLOAD_STATIC_ID = 9
        const val FLOAT_VIDEO_ID = 10
        const val DOWNLOAD_APK_ID = 11
        const val DOWNLOAD_VIDEO_ID = 12
        const val DOWNLOAD_PDF_ID = 13
        const val NETTY_SOCKET_ID = 14
    }

    object JOBIds {
        const val JOB_SPLASH_ID = 1
    }

    //任务
    object TASK {
        const val REQUEST_FOR_MODIFY_TASK = 1000
        const val REQUEST_FOR_ONE_PASS = 1001
        const val REQUEST_FOR_SPREAD_TASK = 1002
        const val REQUEST_FOR_LINK = 1003
        const val START_TIME = "START_TIME"
        const val END_TIME = "END_TIME"
        const val INTENT_TASK_TYPE = "INTENT_TASK_TYPE"
        const val INTENT_TASK_STARTTIME = "INTENT_TASK_STARTTIME"
        const val INTENT_TASK_ENDTIME = "INTENT_TASK_ENDTIME"
        const val INTENT_TASK_IS_MODIFY = "INTENT_TASK_IS_MODIFY"
        const val INTENT_BOOLEAN_ISINSPECTOR = "INTENT_BOOLEAN_ISINSPECTOR"
        const val INTENT_BOOLEAN_IS_NEEDUPLOAD_PIC_OR_VIDEO =
            "INTENT_BOOLEAN_IS_NEEDUPLOAD_PIC_OR_VIDEO"
        const val INTENT_BOOLEAN_IS_NEEDWATERMARK = "INTENT_BOOLEAN_IS_NEEDWATERMARK"
        const val INTENT_TASK_REMIND_TIEM_DATA = "INTENT_TASK_REMIND_TIEM_DATA"
        const val INTENT_TASK_TASKDETAILVO_DATA = "INTENT_TASK_TASKDETAILVO_DATA"
        const val INTENT_TASK_CHILD_DATA = "INTENT_TASK_CHILD_DATA"
        const val INTENT_TASK_LINK_DATA = "INTENT_TASK_LINK_DATA"
        const val INTENT_TASK_EXECUTION_DETAIL_DATA = "INTENT_TASK_EXECUTION_DETAIL_DATA"
        const val INTENT_TASK_ID = "INTENT_TASK_ID"
        const val INTENT_TASK_START_TIME = "INTENT_TASK_START_TIME"
        const val INTENT_TASK_END_TIME = "INTENT_TASK_END_TIME"
        const val INTENT_TASK_IS_PERIOD_TASK = "INTENT_TASK_IS_PERIOD_TASK"
        const val INTENT_TASK_DETAIL = "INTENT_TASK_DETAIL"
        const val NO_DATE = ""
        const val TASK_QUERY_DEFAULT_DAYS = 7 //任务查询默认时间范围

        object PeriodType {
            const val WEEK = 0 //周
            const val MONTH = 1 //月
        }

        object Status {
            const val WAITING = 0 //未开始
            const val EXECUTING = 1 //执行中
            const val INSPECTING = 2 //审核中
            const val FINISHED = 3 //完成
        }

        object StatusChange {
            const val EXECUTING_EXECUTING = 0 //多次提交
            const val EXECUTING_INSPECTING = 1 //全部完成
            const val INSPECTING_EXECUTING = 2 //拒绝
            const val INSPECTING_FINISHED = 3 //完成
            const val INSPECTING_PART = 4 //部分拒绝部分完成
        }

        object OuterIdType {
            const val TASK = 0 //task表
            const val TASK_COMMENT = 1 //taskComment表
            const val TASK_USER_COMMENT = 2 //taskUserComment表
        }

        object TaskRoleType {
            const val CREATOR = 0 //0创建者
            const val EXECUTOR = 1 //1执行人
            const val INSPECTOR = 2 //2检查人
        }

        object SelectType {
            const val SEND_TO_ME = 0 //0发给我的
            const val I_CREATED = 1 //1我创建的
        }
    }
    //--------------------------------------- 二级界面 ----------------------------------------
    /**
     * 设备状态
     * 相关连接口：获取近7日在线，离线，全部设备
     */
    object DeviceStatusTrendSeriesName {
        const val OFFLINE = "离线"
        const val ONLINE = "在线"
        const val TOTAL = "全部"
    }

    object DeviceStatusType {
        const val OFFLINE = 1
        const val ONLINE = 2
        const val ALL = 0
    }

    /**
     * 登录详情
     */
    object LoginDetailsStatus {
        /**
         * 已登录
         */
        const val LOGIN_IN = 2

        /**
         * 未登录
         */
        const val LOGIN_OUT = 1
    }

    object IntentParams {
        const val INTENT_TAG_MAC = "INTENT_TAG_MAC"
        const val INTENT_ROOT_ID_TAG = "INTENT_ROOT_ID_TAG"
        const val INTENT_TAG_TYPE = "INTENT_TAG_TYPE"
        const val INTENT_FROM = "INTENT_FROM"
        const val INTENT_FROM_NORMAL = "INTENT_FROM_NORMAL"
        const val INTENT_FROM_OTHER = "INTENT_FROM_OTHER"
        const val INTENT_EXTRA_LIST = "INTENT_EXTRA_LIST"
        const val TICKET_MEMBER_SELECT = "TICKET_MEMBER_SELECT"
        const val INTENT_START_TIME = "INTENT_START_TIME"
        const val INTENT_END_TIME = "INTENT_END_TIME"
        const val INTENT_SERVICE_LIST = "INTENT_SERVICE_LIST"
        const val INTENT_TAG_WIFI_SSID = "INTENT_TAG_WIFI_SSID"
        const val INTENT_TAG_WIFI_KEY = "INTENT_TAG_WIFI_KEY"
    }

    /**
     * 小秘书
     */
    object CustomerServiceItemType {
        const val TEXT = 0
        const val URL = 1
        const val VIDEO = 2
    }

    object ChangeServerAddRequest {
        const val START_REQUEST = 100
        const val SUCCESS_RESULT = 200
    }

    interface MemberShipMessageType {
        companion object {
            const val STATUS = 1
            const val GENDER = 2
            const val BLACK_LIST = 3
            const val LABEL = 4
        }
    }

    interface MemberType { //        /**
        //         * 新顾客
        //         */
        //        int TYPE_NEW = 1;
        //        /**
        //         * 会员
        //         */
        //        int TYPE_MEMBER = 2;
        //        /**
        //         * 熟客
        //         */
        //        int TYPE_NEW = 1;
        //        /**
        //         * 黑名单
        //         */
        //        int TYPE_NEW = 1;
        //        /**
        //         * VIP
        //         */
        //        int TYPE_NEW = 1;
    }

    /**
     * 考勤明细-签到状态
     * 0未排班 1正常签到 2异常签到  3休息
     */
    object ShiftSignShowStatus {
        const val NO_ATTENDANCE = 0
        const val NORMAL_SIGN = 1
        const val ERROR_SIGN = 2
        const val REST_SIGN = 3
    }

    /**
     * 门店过期提醒权限
     * 0未知 1有权限 2,4无权限 3新门店未开通服务
     */
    object ExpiredPermission {
        const val UNKNOWN_PERMISSION = "0"
        const val HAS_PERMISSION = "1"
        const val NO_PERMISSION = "2"
        const val NO_SERVICE = "3"
        const val ALSO_NO_PERMISSION = "4"
    }

    /**
     * 分享的类型
     */
    interface ShareTypeName {
        companion object {
            const val WECHAT = "WeChat"
            const val WECHAT_FRIEND = "WeChatFriend"
            const val QQ = "QQ"
            const val WEIBO = "Weibo"
            const val DINGTALK = "DingTalk"
            const val PROBLEM = "Problem"
            const val WORKCIRCLE = "WorkCircle"
            const val IM = "IM"
        }
    }

    /**
     * crm 模块
     */
    interface CrmType {
        companion object {
            const val SEARCH = "search"
            const val SCREEN = "screen"

            //关闭添加页面
            const val CLOSE_ADD = "close_add"

            //关闭筛选页面
            const val CLOSE_SCREEN = "close_screen"

            //提交筛选页面
            const val SCREEN_SUBMIT = "screen_submit"
            const val CONTRACT_SUBMIT = "contract_submit"

            //合同类型
            const val FORMAL_CONTRACT = "1"
            const val INFORMAL_CONTRACT = "2"
            const val RENEWAL_CONTRACT = "3"

            //信息类型
            const val INFO_MACHINE = "4"
            const val INFO_SERVER = "1"
            const val INFO_BUILD = "2"
            const val INTENT_DATA_KEY_RECORD_INFO = "INTENT_KEY_RECORD_INFO"
            const val INTENT_DATA_KEY_TO_USERCODE = "INTENT_DATA_KEY_TO_USERCODE"
            const val INTENT_DATA_KEY_TO_USERNAME = "INTENT_DATA_KEY_TO_USERNAME"
            const val INTENT_DATA_KEY_RECORD_POSITION = "INTENT_DATA_KEY_RECORD_POSITION"
            const val INTENT_CRM_INT_CLUE_TYPE = "INTENT_CRM_INT_CLUE_TYPE"
            const val INTENT_CRM_INT_CLUE_ID = "INTENT_CRM_INT_CLUE_ID"
            const val REQUEST_CODE_FOR_COMMENT = 200
        }
    }

    object Privilege {
        /**
         * 视频巡店
         */
        const val VIDEO = "VIDEO" //视频浏览
        const val MAP_CONFIG = "MAP_CONFIG" //门店管理、地图配置
        const val VIDEO_OPERATE = "VIDEO_OPERATE" //视频操作
        const val VIDEO_CONFIG = "VIDEO_CONFIG" //视频配置
        const val RECORD_DOWNLOAD = "RECORD_DOWNLOAD" //录像下载
        const val RECORD_REPLAY = "RECORD_REPLAY" // 视频回放
        const val DEVICE_REPORT_NEW = "DEVICE_REPORT_NEW" //首页新设备报表.
        const val DASH_BOARD_NEW = "DASH_BOARD_NEW" //新仪表盘

        /**
         * 点检中心
         */
        const val CHECK = "CHECK" //点检操作
        const val CHECK_CONFIG = "CHECK_CONFIG" //点检配置
        const val CHECK_MANAGE = "CHECK_MANAGE" //点检查看

        /**
         * 巡店报表
         */
        const val REPORT_SUBSCRIPTION = "REPORT_SUBSCRIPTION" //报告订阅

        /**
         * 图片中心
         */
        const val PHOTO = "PHOTO" //图片查看
        const val PHOTO_MANAGE = "PHOTO_MANAGE" //图片管理
        const val PHOTO_BATCH_MANAGE = "PHOTO_BATCH_MANAGE" //批量管理（删除）

        /**
         * 告警中心
         */
        const val ALARM = "ALARM" //告警中心
        const val ALARM_DEL = "ALARM_DEL" //消除告警
        const val ALARM_CONFIG = "ALARM_CONFIG" //告警配置

        /**
         * 任务中心
         */
        const val TASK = "TASK" //任务
        const val TASK_CREATE = "TASK_CREATE" //创建任务
        const val TASK_PERFORM_PHOTO = "TASK_PERFORM_PHOTO" //执行人能拍照和相册选择完成任务

        /**
         * 客流分析
         */
        const val CUSTOMERFLOW = "CUSTOMERFLOW" //客流查看
        const val CUSTOMERFLOW_CONFIG = "CUSTOMERFLOW_CONFIG" //客流配置
        const val DATA_CENTER = "DATA_CENTER" //数据中心
        const val CUSTOMER_FLOW_BOOK = "CUSTOMER_FLOW_BOOK" //看板

        /**
         * 追溯
         */
        const val POS_INPUT = "POS_INPUT" //pos录入
        const val HOTSPOT = "HOTSPOT" //热点分析

        /**
         * 巡店
         */
        const val SHOP_INSPECTION = "SHOP_INSPECTION" //现场巡店
        const val DEVICE = "DEVICE" //设备查看
        const val DEVICE_MANAGE = "DEVICE_MANAGEMENT" //设备管理
        const val PROBLEM = "PROBLEM" //待办单
        const val PROBLEM_MANAGE = "PROBLEM_MANAGE" //问题管理
        const val PROBLEM_CREATE = "PROBLEM_CREATE" //创建代办单
        const val REPORT = "REPORT" //报表中心
        const val SYSTEM = "SYSTEM" //系统管理
        const val PROJECT = "PROJECT_APP" //工程归档
        const val ATTENDENCE_MANAGE = "ATTENDENCE_MANAGE" //签到规则
        const val SHOP_MANAGE = "SHOP_MANAGE" //门店管理
        const val XUNGENG = "XUNGENG" //巡更
        const val XUNGENG_MANAGE = "XUNGENG_MANAGE" //巡更管理
        const val OOS_CONFIG = "OOS_CONFIG" //缺货配置
        const val OPERATION = "OPERATION" //运营配置
        const val OPERATION_CAROUSEL = "OPERATION_CAROUSEL" //轮播图配置
        const val OPERATION_OVOLICENSE = "OPERATION_OVOLICENSE" //OVOSTATION授权
        const val OPERATION_COLLEGE = "OPERATION_COLLEGE" //掌上学院配置
        const val CUSTOMER_FEEDBACK = "CUSTOMER_FEEDBACK" //顾客意见
        const val FACE_MARKETING = "FACE_MARKETING" //人脸营销
        const val COLLEGE_CONFIG = "COLLEGE_CONFIG" //掌上学院配置
        const val OBJECTTYPE = "OBJECTTYPE" //小类名称
        const val SHOP_MANAGE_ID_MANAGE = "SHOP_MANAGE_ID_MANAGE" //门店证件管理

        /**
         * 考勤
         */
        const val ATTENDENCE_SHIFT = "ATTENDENCE_SHIFT" //考勤排班
        const val SHIFT = "SHIFT" //考勤配置
        const val SHIFT_NAME = "ATTENDENCE_SHIFT_NAME" //班次
        const val SHIFT_GROUP = "ATTENDENCE_SHIFT_GROUP" //考勤组
        const val SHIFT_REPORT = "SHIFT_REPORT" //考勤报表
        const val SHOP_CONFIG = "SHOP_CONFIG" //商城配置
        const val FACE_CONFIG = "FACE_CONFIG" //人脸配置
        const val PHOTO_PATTING = "PHOTO_PATTING" //图片补拍
        const val XINFA_CONFIG = "XINFA_CONFIG" //信发配置
        const val REPORT_DETAILS = "REPORT_DETAILS" //巡店报表
        const val GOLD = "GOLD" //金币
        const val GOLD_CONFIG = "GOLD_CONFIG" //金币配置
        const val GOLD_DETAILS = "GOLD_DETAILS" //金币详情
        const val SHIFT_APPLY = "SHIFT_APPLY" //考勤审批
        const val OVOSTATION_CTRL = "OVOSTATION_CTRL" //ovostation控制
        const val DATA_COLLECTION = "DATA_COLLECTION" //数据采集
        const val TRAFFIC_FLOW = "TRAFFIC_FLOW" //车流量
        const val DATA_DETAIL = "DATA_DETAIL" //数据详情
        const val FACE = "FACE" //人脸识别
        const val SHOPPAPER = "SHOPPAPER" //店报
        const val SHOPPAPER_CREATE = "SHOPPAPER_CREATE" //创建店报
        const val SHOPPAPER_LIST = "SHOPPAPER_LIST" //店报列表
        const val SHOPPAPER_CATEGORY = "SHOPPAPER_CATEGORY" //店报分类
        const val SHIFT_VACATION = "SHIFT_VACATION" //假期管理
        const val BLACKLIST = "BLACKLIST" //黑名单权限
        const val CUSTOMER_INFORMATION = "CUSTOMER_INFORMATION" //接待簿

        /**
         * 接待簿
         */
        const val REGISTER_AND_MERGE_PERSONNEL = "REGISTER_AND_MERGE_PERSONNEL" //注册和合并人员
        const val REMOVE_PERSONNEL = "REMOVE_PERSONNEL" //删除人员
        const val EDIT_PERSONAL_INFORMATION = "EDIT_PERSONAL_INFORMATION" //编辑人员信息
        const val EDIT_TAGS = "EDIT_TAGS" //编辑标签
        const val CUSTOMER_MY = "CUSTOMER_MY" //我的顾客
        const val VIEW_PERSONNEL_MANAGEMENT = "VIEW_PERSONNEL_MANAGEMENT" //查看人员管理
        const val CUSTOMER_ANALYSIS = "CUSTOMER_ANALYSIS" //顾客分析
        const val TRAINING_LIVE = "TRAINING_LIVE"
        const val POS_WARNING = "POS_WARNING" // 异常订单
        const val STORE_PERFORMANCE = "STORE_PERFORMANCE" //门店业绩
        const val STORE_PLAN_APP = "STORE_PLAN_APP" //计划巡店
        const val FACE_CUSTOMER_REPORT = "FACE_CUSTOMER_REPORT" //会员报表
        const val SERVICE_ERROR = "SERVICE_ERROR" //异常服务
        const val WORKSHOP_MONITOR = "WORKSHOP_MONITOR" //电子控工
        const val CREATE_ORDER = "CREATE_ORDER" //一键开单
        const val ORDER_MGMT = "ORDER_MGMT" //工单管理
        const val FACE_CUSTOMER = "FACE_CUSTOMER" // 进店顾客
        const val FACE_PERSONNEL_MGMT = "FACE_PERSONNEL_MGMT" // 人员管理
        const val FACE_CAPTURE = "FACE_CAPTURE" // 抓拍记录

        // 接待簿 人员档案
        const val VIEW_PERSONNEL_MANAGEMENT_CHANGE_STATUS =
            "VIEW_PERSONNEL_MANAGEMENT_CHANGE_STATUS" // 更改身份

        // 顾客分析-到店次数-右上角修改显示隐藏权限
        const val CUSTOMER_ANALYSIS_CHANGE_STATUS = "CUSTOMER_ANALYSIS_CHANGE_STATUS" // 更改身份

        // 顾客详情的权限
        const val CUSTOMER_DETAILS = "CUSTOMER_DETAILS"

        // 接待簿 首页 右上角 进店人员权限
        const val BAGUETTE_PERSON = "BAGUETTE_PERSON"

        // 接待簿 首页 右上角 门店人员的注册和合并人员
        const val BAGUETTE_PERSON_REGISTER_AND_MERGE_PERSONNEL =
            "BAGUETTE_PERSON_REGISTER_AND_MERGE_PERSONNEL"

        // 接待簿 首页 右上角 门店人员的删除人员
        const val BAGUETTE_PERSON_REMOVE_PERSONNEL = "BAGUETTE_PERSON_REMOVE_PERSONNEL"

        // 接待簿 首页 右上角 门店人员标签
        const val BAGUETTE_PERSON_TAG = "BAGUETTE_PERSON_TAG"

        // 接待簿 首页 编辑权限 - 添加标签&添加接待簿记录
        const val BAGUETTE_PERSON_EDIT = "BAGUETTE_PERSON_EDIT"

        /**
         * 人员管理 -- 权限 首页的显示
         */
        const val FACE_PERSONNEL_MGMT_NEW_CUSTOMER = "FACE_PERSONNEL_MGMT_NEW_CUSTOMER" // 新顾客
        const val FACE_PERSONNEL_MGMT_REPEAT_CUSTOMER = "FACE_PERSONNEL_MGMT_REPEAT_CUSTOMER" // 熟客
        const val FACE_PERSONNEL_MGMT_VIP_CUSTOMER = "FACE_PERSONNEL_MGMT_VIP_CUSTOMER" // 会员
        const val FACE_PERSONNEL_MGMT_CLERK = "FACE_PERSONNEL_MGMT_CLERK" // 店员
        const val FACE_PERSONNEL_MGMT_OTHER_CUSTOMER = "FACE_PERSONNEL_MGMT_OTHER_CUSTOMER" // 其他人员
        const val FACE_PERSONNEL_MGMT_REGISTER = "FACE_PERSONNEL_MGMT_REGISTER" // 注册

        /**
         * 人员详情
         */
        const val PERSONNEL_DETAILS = "PERSONNEL_DETAILS" // 人员详情的权限
        const val PERSONNEL_DETAILS_DELETE = "PERSONNEL_DETAILS_DELETE" //删除
        const val PERSONNEL_DETAILS_MERGE = "PERSONNEL_DETAILS_MERGE" //合并

        /**
         * 进店顾客 --权限
         */
        const val FACE_REGISTER = "FACE_REGISTER" // 注册 ---人员详情
        const val FACE_DELETE = "FACE_DELETE" // 删除
        const val FACE_MERGE = "FACE_MERGE" // 合并
        const val FACE_TAG = "FACE_TAG" // 标签 -会员 左滑 标签权限
        const val FACE_BATCH_REFERENCE_FACE = "FACE_BATCH_REFERENCE_FACE" // 编辑基准照

        /**
         * 黑名单 --权限
         */
        const val BLACKLIST_WARNING = "BLACKLIST_WARNING" // 黑名单提醒
        const val BLACKLIST_ADD = "BLACKLIST_ADD" // 黑名单增加
        const val BLACKLIST_MODIFY = "BLACKLIST_MODIFY" // 黑名单修改
        const val BLACKLIST_DELETE = "BLACKLIST_DELETE" // 黑名单删除
        const val BLACKLIST_FOLLOW = "BLACKLIST_FOLLOW" // 黑名单跟进操作

        /**
         * 抓拍记录 --权限
         */
        const val FACE_CAPTURE_DELETE = "FACE_CAPTURE_DELETE" // 删除
        const val FACE_SET_AS_VALID = "FACE_SET_AS_VALID" // 设为有效

        /**
         * 语音识别
         */
        const val VOICE_ACQUISITION_REVIEW = "VOICE_ACQUISITION_REVIEW"

        /**
         * 门店信用
         */
        const val SHOP_CREDIT = "SHOP_CREDIT"
        /**
         * //         * 运营分析
         * //          */
        //        public static final String OPERATION_ANALYSIS = "OPERATION_ANALYSIS";
        //
        /**
         * POS追溯报表
         */
        const val TRACK = "TRACK"

        /**
         * 企业自定义应用配置
         */
        const val ENTERPRISE_CUSTOM_APPLICATION_CONFIG = "ENTERPRISE_CUSTOM_APPLICATION_CONFIG"

        /**
         * 工单
         */
        const val CUSTOMER_SERVICE = "CUSTOMER_SERVICE"

        /**
         * 陈列中心
         */
        const val DISPLAY_CENTER = "DISPLAY_CENTER"

        /**
         * 是否启用通讯录
         */
        const val USER_MANAGE_ENABLE_ADDRESS_BOOK = "USER_MANAGE_ENABLE_ADDRESS_BOOK"

        /**
         * 我的页面是否显示系统商城
         */
        const val SYSTEM_MALL = "SYSTEM_MALL"

        /**
         * 消息页是否显示通讯录
         */
        const val MESSAGE_ADDRESS_BOOK = "MESSAGE_ADDRESS_BOOK"

        /**
         * 消息页是否可以发起群聊
         */
        const val MESSAGE_GROUP_CHAT = "MESSAGE_GROUP_CHAT"

        /**
         * 工作圈-超管或者作者是否可以删除其他人的评论
         */
        const val HANDOVER_BOOK_DETAILS_DELETE_COMMENT = "HANDOVER_BOOK_DETAILS_DELETE_COMMENT"
    }

    /**
     * 跳转使用的一些key
     */
    object INTENT_KEY {
        const val FROME = "FROME" //来自哪里
        const val INTENT_TAG = "INTENT_TAG"
    }

    /**
     * IM相关
     */
    interface IM_AVIMCMD {
        companion object {
            const val AVIMCMD_MULTI = 0x800 // 多人互动消息类型
            const val AVIMCMD_MUlTI_HOST_INVITE = AVIMCMD_MULTI + 1 // 邀请互动,
            const val AVIMCMD_MULTI_CANCEL_INTERACT = AVIMCMD_MUlTI_HOST_INVITE + 1 // 断开互动，
            const val AVIMCMD_MUlTI_JOIN = AVIMCMD_MULTI_CANCEL_INTERACT + 1 // 同意互动，
            const val AVIMCMD_MUlTI_REFUSE = AVIMCMD_MUlTI_JOIN + 1 // 拒绝互动，
            const val AVIMCMD_MULTI_HOST_ENABLEINTERACTMIC = AVIMCMD_MUlTI_REFUSE + 1 // 主播打开互动者Mic，
            const val AVIMCMD_MULTI_HOST_DISABLEINTERACTMIC =
                AVIMCMD_MULTI_HOST_ENABLEINTERACTMIC + 1 // 主播关闭互动者Mic，
            const val AVIMCMD_MULTI_HOST_ENABLEINTERACTCAMERA =
                AVIMCMD_MULTI_HOST_DISABLEINTERACTMIC + 1 // 主播打开互动者Camera，
            const val AVIMCMD_MULTI_HOST_DISABLEINTERACTCAMERA =
                AVIMCMD_MULTI_HOST_ENABLEINTERACTCAMERA + 1 // 主播打开互动者Camera
            const val AVIMCMD_MULTI_HOST_CANCELINVITE =
                AVIMCMD_MULTI_HOST_DISABLEINTERACTCAMERA + 1 //主播让某个互动者下麦
            const val AVIMCMD_MULTI_HOST_CONTROLL_CAMERA =
                AVIMCMD_MULTI_HOST_CANCELINVITE + 1 //主播控制某个上麦成员摄像头
            const val AVIMCMD_MULTI_HOST_CONTROLL_MIC =
                AVIMCMD_MULTI_HOST_CONTROLL_CAMERA + 1 //主播控制某个上麦成员MIC

            // 0x80c 未自定义以前从-1开始
            const val AVIMCMD_TEXT = -1 // 普通的聊天消息 -1
            const val AVIMCMD_None = AVIMCMD_TEXT + 1 // 无事件 0

            // 以下事件为TCAdapter内部处理的通用事件
            const val AVIMCMD_ENTERLIVE = AVIMCMD_None + 1 // 用户加入直播, Group消息  1
            const val AVIMCMD_EXITLIVE = AVIMCMD_ENTERLIVE + 1 // 用户退出直播, Group消息  2
            const val AVIMCMD_PRAISE = AVIMCMD_EXITLIVE + 1 // 点赞消息, Demo中使用Group消息  3
            const val AVIMCMD_HOST_LEAVE = AVIMCMD_PRAISE + 1 // 主播离开, Group消息 ： 4
            const val AVIMCMD_HOST_BACK = AVIMCMD_HOST_LEAVE + 1 // 主播回来, Demo中使用Group消息 ： 5
            const val AVIMCMD_KICK_OUT = AVIMCMD_HOST_BACK + 1 // 主播将观众踢出了直播间 ： 6
        }
    }

    interface USER_KEY {
        companion object {
            const val USER_INFO = "user_info"
            const val USER_ID = "user_id"
            const val USER_SIG = "user_sig"
            const val USER_NICK = "user_nick"
            const val USER_SIGN = "user_sign"
            const val USER_AVATAR = "user_avatar"
            const val USER_ROOM_NUM = "user_room_num"
            const val LIVE_ANIMATOR = "live_animator"
            const val USER_TOKEN = "user_token"
            const val IM_STATE = "im_state"
            const val TLS_NAME = "tls_name"
        }
    }

    object PictureCenter {
        const val ALBUM_ID = "album_id"
        const val ALBUM_IS_FROM_PICTURE_TABLE = "isFromPictureTable"
        const val PIC_IDS = "pic_ids"
        const val INTENT_FROM_SNAPSHOT = "INTENT_FROM_SNAPSHOT"
        const val INTENT_FROM_RANDOM_CHECK = "INTENT_FROM_RANDOM_CHECK"
        const val INTENT_FROM_PICTURE_CENTER = "INTENT_FROM_PICTURE_CENTER"
        const val INTENT_FROM_PROBLEAM_OPERATE = "INTENT_FROM_PROBLEAM_OPERATE"
        const val INTENT_FROM = "INTENT_FROM"
        const val INTENT_IMAGE_TAG = "INTENT_IMAGE_TAG"

        /**
         * 默认相册
         */
        const val TAG_DEFAULT = "1"
        const val ALBUM_TYPE = "album_type"
        const val ALBUM_NAME = "album_name"

        /**
         * 我的相册
         */
        const val TAG_MINE = "2"
        const val INTENT_IMAGE_URL = "INTENT_IMAGE_URL"
        const val INTENT_IMAGE_ID = "INTENT_IMAGE_ID"
        const val INTENT_IMAGE_POS = "INTENT_IMAGE_POS"
        const val INTENT_SOURCE_TYPE = "INTENT_SOURCE_TYPE"

        object REQUEST_CODE {
            const val SHARE_WORKCIRCLE = 0
        }

        object AlbumParams {
            const val ALBUM_ADDPIC = "ALBUM_ADDPIC"
            const val ALBUM_MANAGE = "ALBUM_MANAGE"
        }
    }

    /**
     * 待办单
     */
    object Problem {
        const val INTENT_IMAGE_URL = "INTENT_IMAGE_URL"
        const val INTENT_IMAGE_POS = "INTENT_IMAGE_POS"
        const val INTENT_FLAG = "INTENT_FLAG"
        const val INTENT_ENABLE_DELETE = "INTENT_ENABLE_DELETE"
        const val INTENT_SOURCE_TYPE = "INTENT_SOURCE_TYPE"
        const val INTENT_SOURCE_FROM = "INTENT_SOURCE_FROM" //来源类tag
        const val FROM_TYPE_QUICK = "VIDEO_ACTIVITY" //来源类：视频播放器页面.
        const val SOURCE_TYPE_SHAKE = 2 //摇一摇生成待办单
        const val SOURCE_TYPE_SNAPSHOT = 3 //抓拍问题
        const val SOURCE_TYPE_CREATE = 4 //创建代办单
        const val SOURCE_TYPE_QUICK = 6 //快拍问题。
        const val SOURCE_TYPE_ALARM = 7 //告警生成待办单
    }

    object Alarm {
        const val INTENT_ALARM_ID = "alarmId"
    }

    /**
     * 点检中心
     */
    object CheckCenter {
        const val INTENT_TASK_ID_TAG = "INTENT_TASK_ID_TAG"
        const val INTENT_POSITION_TAG = "INTENT_POSITION_TAG"
        const val INTENT_TASK_STATUS_TAG = "INTENT_TASK_STATUS_TAG"
        const val INTENT_TASKID_TAG = "INTENT_TASKID_TAG"
        const val INTENT_IMAGE_URL = "INTENT_IMAGE_URL"
        const val INTENT_IMAGE_ID = "INTENT_IMAGE_ID"
        const val INTENT_PRESET_ID = "INTENT_PRESET_ID"
        const val INTENT_CAN_EDIT = "INTENT_CAN_EDIT"
        const val INTENT_FROM_WHERE = "INTENT_FROM_WHERE"
        const val INTENT_SHOP_ID_TAG = "INTENT_SHOP_ID_TAG"
        const val INTENT_RESULT_PRESET_ID_TAG = "INTENT_RESULT_PRESET_ID_TAG"
        const val INTENT_RESULT_PRESET_NAME_TAG = "INTENT_RESULT_PRESET_NAME_TAG"
        const val INTENT_TAG_SHOP_ID = "INTENT_TAG_SHOP_ID"
        const val INTENT_TAG_FILE_PATH = "INTENT_TAG_FILE_PATH"
        const val INTENT_SHOP_STATUS_TAG = "INTENT_SHOP_STATUS_TAG" //门店状态
        const val INTENT_TASK_LIST = "INTENT_TASK_LIST"
    }

    /**
     * pos录入
     */
    object Pos {
        const val FAVOR_SHOP = "FAVOR_SHOP"
    }

    /**
     * 直播im
     */
    object Live {
        const val SDK_APPID = 1400012218
        const val ACCOUNT_TYPE = 6444
        const val SERVER_DOMAIN = "http://www.ovopark.com:8088/roomservice/weapp/live_room"
    }

    object PatrolShop {
        //    个人巡店
        const val CRUISE_TYPE_USER = 0

        //    门店巡店
        const val CRUISE_TYPE_SHOP = 1

        //    督导巡店
        const val CRUISE_TYPE_SUPERVISION = 2

        //  巡店记录-未审核页面
        const val CRUISE_TYPE_CHECK_TASK = 3

        //    巡店报告审核
        const val CRUISE_TYPE_CHECK_MESSAGE = 4

        //    巡店合成报表
        const val CRUISE_TYPE_MERGE = 5

        //  巡店记录-已审核页面
        const val CRUISE_TYPE_CHECK_TASK_COMPLETE = 6

        //巡店记录
        const val CRUISE_TYPE_REPORT = 10

        //巡店审核
        const val CRUISE_TYPE_AUDIT = 11
    }

    /**
     * 版本信息管理
     */
    object Version {
        const val APPLICATION_ID = 1001
        const val FLAVOR = 1002
        const val GPS_REQUEST_CODE = 10 //GPS精准位置
        const val REQ_CODE = 20 //系统位置信息
    }

    /**
     * 健康上报状态
     */
    object HEALTH_STATE {
        const val STATE_OFF = 0 //未开启
        const val STATE_ON_UNDONE = 2 //已开启未上报
        const val STATE_ON_DONE = 1 //已开启已上报
    }

    /**
     * 万集订单
     */
    interface SALE_ORDER {
        interface USER_KEY {
            companion object {
                const val YUNJI_USER = "yunji_user"
                const val USER_INFO = "user_info"
                const val USER_ID = "user_id"
                const val USER_NICK = "user_nick"
                const val USER_HAS_SALE_MODULE = "moudle_privilige"
                const val USER_TOKEN = "user_token"
                const val USER_DEPID = "dep_id"
                const val USER_ROLE_ID = "role_id"
            }
        }

        companion object {
            const val OEDER_NO_PAY = 1 //未付款
            const val ORDER_PAYED_WAIT_CONFIRM = 2 //已付款待审核
            const val CONFIRM_PAYED = 3 //确认已付款
            const val SENDED_OR_PICKABLE = 5 //已发货/可取货
            const val FINISHED = 6 //已送达
            const val NOT_AVALIABLE = 7 //订单失效
            const val ORDER_CLOSE = 8 //交易关闭
            const val PICK_SELF = 1 //自取
            const val PICK_OTHER = 0 //配送
            const val PICK_TODAY = 0 //同城跑腿
            const val PICK_TOMORROW = 1 //同城外卖配送
            const val PAY_WECHAT = 0 //微信支付
            const val PAY_ALI = 1 //支付宝
            const val PAY_SCAN = 2 //扫描支付
            const val BUNDLE_KEY_ORDER_ID = "order_id"
            const val success = 1001
            const val failed = 1002
            const val REQUEST_CODE = 1001
            const val RESULT_OK = 1002
        }
    }

    // 异常订单审核状态 筛选用
    object ABNORMAL_ORDER_AUDIT {
        const val WAIT_AUDIT = 0 // 待审核0
        const val FINISH_AUDIT = 2 // 已审核2
        const val NOT_AUDIT = -2 // 系统审核-2
    }

    // 异常订单审核状态 页面判断用
    object ABNORMAL_ORDER_AUDIT_FOR_SHOW {
        const val WAIT_AUDIT = 0 // 待审核0
        const val FINISH_AUDIT = 1 // 已审核1
        const val NOT_AUDIT = 2 // 系统审核2
    }

    // 异常订单原因
    object ABNORMAL_ORDER_REASON {
        const val AMOUNT = 1 // 订单总额-金额
        const val QUANTITY = 2 // 商品数量
        const val CONSUMPTION_FREQUENCY = 3 // 消费频率
        const val RETURN_GOODS = 4 // 退货
        const val DISCOUNT = 5 // 折扣
        const val ORDER_NO_PERSON = 6 // 有单无人
        const val PAY = 7 // 混合支付
        const val SPECIAL = 9 // 特定支付
        const val SALER_TYPE = 11 //销售类型
    }

    /**
     * 水印权限
     */
    object WaterMarkPermission {
        const val FACE_VIP_WATER_MARK_IS_OPEN = "FACE_VIP_WATER_MARK_IS_OPEN" // 人脸会员
        const val RECEPTION_WATER_MARK_IS_OPEN = "RECEPTION_WATER_MARK_IS_OPEN" // 接待薄
        const val BLACKLIST_WATER_MARK_IS_OPEN = "BLACKLIST_WATER_MARK_IS_OPEN" // 黑名单

        //数据中心
        const val DATA_CENTER = "1"

        //门店列表
        const val STORE_LIST = "2"

        //pos追溯列表
        const val POS_LIST = "3"

        //门店首页
        const val STORE_HOME = "4"

        //新客流
        const val NEW_FLOW = "5"
    }

    /**
     * 权限申请结果
     * 用于本地缓存标记，只有拒绝的权限才去标识
     */
    object Permission {
        //定位
        const val LOCATION = "LOCATION"

        //相机、相册
        const val CAMERA = "CAMERA"

        //存储
        const val STORAGE = "STORAGE"

        //录音
        const val AUDIO = "AUDIO"

        //日历
        const val CALENDAR = "CALENDAR"

        //权限状态为空
        const val REFUSE_STATUS_NULL = 0

        //拒绝且不再询问
        const val REFUSE_NO_ENQUIRE = 1

        //拒绝且可询问
        const val REFUSE_AND_ENQUIRE = 2
    }

    /**
     * 掌上学院
     */
    object CollegeConfig {
        const val UNTESTED = "3" //未考
        const val TESTED = "4" //已考
    }

    /**
     * 极光推送
     */
    object JPUSH {
        const val FROM = "from"
        const val TYPE = "jgtype"
    }

    /**
     * 工作圈
     */
    object WorkCircle {
        const val SP_KEY_CURRENT_TAB_POSITON = "SP_KEY_CURRENT_TAB_POSITON"
        const val TRANSIT_BOOLEAN_IS_USEDRAFT = "transit_BOOLEAN_is_usedraft"
        const val TRANSIT_MODULE_ID = "TRANSIT_MODULE_ID"
        const val TRANSIT_MODULE_NAME = "TRANSIT_MODULE_NAME"
        const val TRANSIT_MODULE_TYPE = "TRANSIT_MODULE_TYPE"
        const val TRANSIT_SHOP_NAME = "TRANSIT_SHOP_NAME"
        const val TRANSIT_SHOP_IDS = "TRANSIT_SHOP_IDS"
        const val MOUDLE_TYPE_MODULE = 0 //通用模板
        const val MOUDLE_TYPE_MISSION = 1 //亮点推广+任务
        const val MOUDLE_TYPE_FEEDBACK = 2 //用户反馈
        const val MOUDLE_TYPE_SUGGESTION = 3 //顾客意见
        const val MOUDLE_TYPE_GOLD_APPROVE = 4 //金币认可
        const val MOUDLE_TYPE_GOLD_APPRECIATION = 5 //金币赞赏

        //（1通过，-1不通过 3取消本月 4取消后三月，0待审核）
        const val GOLD_APPRECIATION_STATUS_PASS = 1 //通过
        const val GOLD_APPRECIATION_STATUS_REFUSE = -1 //不通过
        const val GOLD_APPRECIATION_STATUS_ONE_MONTH = 3 //取消本月
        const val GOLD_APPRECIATION_STATUS_THREE_MONTH = 4 //取消后三月
        const val GOLD_APPRECIATION_STATUS_CHECK = 0 //待审核
        const val SUB_ITEM_TYPE_SINGLE_TEXT = 14 //单行文本
        const val SUB_ITEM_TYPE_MULTI_INPUT = 1 //多行输入框
        const val SUB_ITEM_TYPE_DATE = 2 //日期
        const val SUB_ITEM_TYPE_MULTI_CHECKBOX = 4 //多选框
        const val SUB_ITEM_TYPE_IMAGE = 5 //图片
        const val SUB_ITEM_TYPE_NUMBER_INPUT = 6 //数字输入框
        const val SUB_ITEM_TYPE_SINGLE_CHECKBOX = 7 //单选框
        const val SUB_ITEM_TYPE_SELECT_PROJECT = 8 //选项目
        const val SUB_ITEM_TYPE_IMAGE_INPUT = 9 ////图片加输入框
        const val SUB_ITEM_TYPE_CALCULATE_RESULT = 12 //计算结果
    }

    /**
     * 店报
     */
    object ShopPaper {
        const val REQUEST_RESULT_CODE_SPREAD = 100
        const val TRANSIT_DATA_SPREAD = "transit_data_spread"
        const val CONTENT_KEY = "content"
    }

    /**
     * 语音识别
     */
    object SpeechIdentify {
        const val DEVICE = "DEVICE"
        const val DEVICE_NAME = "DEVICE_NAME"
        const val DEVICE_SAVE = "DEVICE_SAVE"
        const val DEVICE_BEAN = "DEVICE_BEAN"
        const val DEVICE_ID = "DEVICE_ID"
    }

    /**
     * 智控平台
     */
    object IntelligentControl {
        const val HOME_ID = "HOME_ID"
    }

    /**
     * 切换企业
     */
    object ChangeEnterprise {
        const val ENTERPRISE_TAIJI = "ENTERPRISE_TAIJI"
        const val ENTERPISE_CHANGE = "ENTERPISE_CHANGE"
    }

    /**
     * 计划巡店
     */
    object CruiseShop {
        const val PROGRESS_INFO = "PROGRESS_INFO" //进度详情
        const val DEPT_INFO = "DEPT_INFO" //门店详情
    }

    /**
     * 抓拍操作
     */
    object SnapshotType {
        const val SNAPSHOT = 0 //抓拍
        const val SIGN_INFO_UPDATE_TYPE1 = 1 //更新签到信息01
        const val SIGN_INFO_UPDATE_TYPE2 = 2 //更新签到信息02
        const val SHUT_SNAPSHOT = 3 //停止抓拍
    }

    /**
     * 抓拍结果
     */
    object SnapshotTypeResult {
        const val SIGN_START = 0 //start
        const val SIGN_SUCCESS = 1 //success
        const val SIGN_FAIL = 2 //failed
    }

    /**
     * CRM工单
     */
    object WorkOrderType {
        const val INTENT_ORDER_DETAIL = "INTENT_ORDER_DETAIL"
        const val INTENT_STRING_ORDER_STATE = "INTENT_STRING_ORDER_STATE"
        const val INTENT_BOOLEAN_NEED_REQUEST_DETAIL = "INTENT_BOOLEAN_NEED_REQUEST_DETAIL"
        const val INTENT_FORM_TYPE_INFO_DATA = "INTENT_FORM_TYPE_INFO_DATA"
        const val INTENT_DYNAMIC_FORM_INFO_DATA = "INTENT_DYNAMIC_FORM_INFO_DATA"
        const val INTENT_DYNAMIC_FORM_APPLICATION_ID = "INTENT_DYNAMIC_FORM_APPLICATION_ID"
        const val INTENT_DYNAMIC_FORM_MESSAGE_ID = "INTENT_DYNAMIC_FORM_MESSAGE_ID"
        const val SP_NAME_CRM_ORDER = "SP_NAME_CRM_ORDER"
        const val SP_PARAMS_NAME_USER_WECHAT = "SP_PARAMS_NAME_USER_WECHAT"
        const val SP_PARAMS_NAME_USER_DEPT_OBJECT = "SP_PARAMS_NAME_USER_DEPT_OBJECT"
        const val CALL_TIME_TYPE = "call_time_type" //接收电话时间
        const val EXPENSES_BEARING_TYPE = "expenses_bearing_type" //费用承担
        const val MAINTENANCE_REASON_TYPE = "maintenance_reason_type" //问题原因
        const val PROBLEM_DIFFICULTY_TYPE = "problem_difficulty_type" //问题难易度
        const val DICT_TYPE_CUSTOMER_INDUSTRY = "customer_industry" //行业类别
        const val WORK_ORDER_TYPE = "work_order_type" //工单类型
        const val WORK_ORDER_HANDLING_TYPE = "handling_type" //质检单处理类型
        const val WORK_ORDER_LOGISTICS_TYPE = "logistics" //快递公司类型
        const val WORK_ORDER_LOGISTICS_STATE_TYPE = "logistics_state" //快递状态
        const val WORK_ORDER_SPECIFICATION = "quality_spec" //规格
        const val WORK_ORDER_QUESTION_TYPE = "store_problem_type" //问题类型
        const val WORK_ORDER_FOREIGN_BODY_TYPE = "foreign_body_type" //异物类型
        const val WORK_ORDER_FOREIGN_BODY_REMARK_TYPE = "foreign_body_remark" //异物描述类型
        const val DEFAULT_MODULE_NAME = "cluing" //模块名称
        const val WORK_ORDER_STATE_WAITING = "4" //待处理
        const val WORK_ORDER_STATE_HANDLING = "1" //处理中
        const val WORK_ORDER_STATE_FINISH = "2" //已结单
        const val WORK_ORDER_STATE_REFUSE = "3" //驳回
        const val WORK_ORDER_STATE_AT_ME = "-1" //@我
        const val MY_ORDER = 0 //我的工单
        const val PENDING_ORDER = 1 //工单处理
        const val ORDER_TYPE_REPAIRS = 1 //售后保修-工单报修
        const val ORDER_TYPE_QUALITY_TESTING = 2 //运营管理-全民质检

        //1:图片(jpg,jpeg,png,gif)  2：图片压缩包(zip,rar)  3：office(word,excel,visio)  4：安装文件(exe,rpm,msi,apk) 5：音视频文件(flv,mp4,avi,swf)  6：其他
        const val ATTACH_TYPE_PIC = 1
        const val ATTACH_TYPE_ZIP = 2
        const val ATTACH_TYPE_OFFICE = 3
        const val ATTACH_TYPE_INSTALL = 4
        const val ATTACH_TYPE_MEDIA = 5
        const val ATTACH_TYPE_OTHER = 6
        const val ORDER_NODE_NONE = 0 //无节点

        //10-提交节点（被驳回后），11-客服确认，12-发货节点，13-收货截图节点，14-销货节点，15-客服结案
        const val QUALITY_TESTING_NODE_COMMIT = 10
        const val QUALITY_TESTING_NODE_CONFIRM = 11
        const val QUALITY_TESTING_NODE_SEND = 12
        const val QUALITY_TESTING_NODE_RECEIVE = 13
        const val QUALITY_TESTING_NODE_DESTROY = 14
        const val QUALITY_TESTING_NODE_COMPLETE = 15

        //（0拒绝、1通过、2加签、3驳回到上个节点）
        const val OPERATION_TYPE_REFUSE = 0
        const val OPERATION_TYPE_PASS = 1
        const val OPERATION_TYPE_RESIGN = 2
        const val OPERATION_TYPE_REFUSE_TO_LAST_NODE = 3

        const val DYNAMIC_FORM_PRIVILEGE_TYPE_READ = 4 //只读
        const val DYNAMIC_FORM_PRIVILEGE_TYPE_WRITE = 2 //可编辑
        const val DYNAMIC_FORM_PRIVILEGE_TYPE_HIDE = 1 //隐藏

        //动态表单控件类型
        const val DYNAMIC_FORM_ITEM_TYPE_TEXT = "text" //文本
        const val DYNAMIC_FORM_ITEM_TYPE_NODE = "layout" //节点名称
        const val DYNAMIC_FORM_ITEM_TYPE_DATETIME = "datetime" //日期
        const val DYNAMIC_FORM_ITEM_TYPE_IMAGE = "image" //图片
        const val DYNAMIC_FORM_ITEM_TYPE_STAR = "star" //星级
        const val DYNAMIC_FORM_ITEM_TYPE_USER = "user" //当前登录用户
        const val DYNAMIC_FORM_ITEM_TYPE_STORE = "store" //选择门店
        const val DYNAMIC_FORM_ITEM_TYPE_STORE_ADDRESS = "storeadress" //门店地址
        const val DYNAMIC_FORM_ITEM_TYPE_CHECKBOX = "checkbox" //单选列表
        const val DYNAMIC_FORM_ITEM_TYPE_CLASSIFY = "classify" //多级选择列表
        const val DYNAMIC_FORM_ITEM_TYPE_EXPRESS = "express" //快递选择
        const val DYNAMIC_FORM_ITEM_TYPE_AMOUNT = "amount" //数字输入框
        const val DYNAMIC_FORM_ITEM_TYPE_LOGIC = "logic" //逻辑组件

        const val INTENT_DYNAMIC_MY_ORDER = 1 //我的工单
        const val INTENT_DYNAMIC_HANDLE_ORDER = 2 //工单处理
        const val INTENT_DYNAMIC_CREATE_ORDER = 3 //工单创建

        //action 中 status
        const val ACTION_STATUS_APPLY = -2 //申请人（本地用）
        const val ACTION_STATUS_DRAFT = -1 // 草稿
        const val ACTION_STATUS_TO_BE_ACTIVATED = 0 // 待激活
        const val ACTION_STATUS_PENDING = 1 // 审批中
        const val ACTION_STATUS_PROCESSED = 2 // 已处理
        const val ACTION_STATUS_COPIED = 3 // 已抄送
        const val ACTION_STATUS_INITIATED = 4 // 已发起
        const val ACTION_STATUS_REJECT_REFILL = 5 // 退回
        const val ACTION_STATUS_FORWARD_SKIP = 6 // 跳过
        const val ACTION_STATUS_OTHER_PROCESSED = 7 //已处理
        const val ACTION_STATUS_APPLY_CANCEL = 8 //已撤销
        const val ACTION_STATUS_PRE_ADD_SIGN = 9 //前加签
        const val ACTION_STATUS_AFTER_ADD_SIGN = 10 //后加签
        const val ACTION_STATUS_TRANSFER_SIGN = 11 // 转签

        const val DYNAMIC_FORM_ACTION_USER_NODE_FINISH = 0 //结束节点
        const val DYNAMIC_FORM_ACTION_USER_NODE_START = 1 //发起节点
        const val DYNAMIC_FORM_ACTION_USER_NODE_CONDITION = 2 //条件节点
        const val DYNAMIC_FORM_ACTION_USER_NODE_CHECK = 3 //审批节点  显示同意、驳回
        const val DYNAMIC_FORM_ACTION_USER_NODE_HANDLE = 4 //办理节点   显示同意  单独接口
        const val DYNAMIC_FORM_ACTION_USER_NODE_COPY = 5 //抄送节点

    }

    /**
     * 企业ID
     */
    object GroupId {
        const val TMALL_CAR_TEST = "1920029" //天猫养车测试企业
        const val WDZ_TEST = "1084" //万店掌测试企业
        const val TMALL_CAR_BASE = "4699" //天猫养车正式企业
        const val TMALL_CAR_MIAOSHAN_BASE = "9251" //天猫养车庙山三路店
        const val TMALL_CAR_JIANGLING_BASE = "9251" //沈阳天猫养车汀江街橡树湾店
        const val WDZ_BASE = "211" //万店掌测试企业
        const val SNACK_BUSY_BASE = "4163" //零食很忙企业
    }

    /**
     * 相机
     */
    object Camera {
        const val FLASH_OFF = 0
        const val FLASH_ON = 1
        const val FLASH_TORCH = 2
        const val FLASH_AUTO = 3
    }

    /**
     * 场景配置
     */
    object Scene {
        const val APPLY = 0
        const val NOFIT = 1
        const val PERSON_UPLOAD = 2
    }

    /**
     * 代办单审核
     */
    object ProblemAudit {
        const val ALL = 2 //全部
        const val AUDIT = 0 //待审核
        const val COMPLETE_AUDIT = 1 //已审核
    }

    /**
     * 门店过期状态
     */
    object ShopStatusType {
        const val NORMAL = 0 //未过期
        const val EXPIRED = 1 //过期
        const val BEING_EXPIRED = 2 //即将过期
    }

    /**
     * OA相关类型
     */
    object OAType {
        const val ROLE_TYPE = "ROLE_TYPE" //角色选择3
    }

    /**
     * 审批模块状态
     */
    object ApproveType {
        const val STATUS_CANCEL = 0 //已撤销
        const val STATUS_WAIT = 1 //待审批
        const val STATUS_PASS = 2 //审批通过
        const val STATUS_REFUSE = 3 //审批拒绝
        const val STATUS_COPY_TO_ME = 4 //抄送给我
    }

    /**
     * 陈列比对
     */
    object Display{
        const val GRAY = 0
        const val GREEN = 1
    }
}